Cum să obții valorile selectate create de plugin-ul ACF în WordPress

4 iul. 2013, 16:46:09
Vizualizări: 16.4K
Voturi: 1

În esență, vreau să afișez o casetă de selectare astfel încât administratorul să poată alege o opțiune în timpul creării sau editării unei categorii, pentru a afișa categoria pe pagina principală cu sau fără imagine.

Folosesc plugin-ul Advanced Custom Fields pentru a adăuga o casetă de selectare în pagina de categorii.
Am creat un grup de câmpuri personalizat pentru afișare cu:

field label  :  Select to display  
field name :   select_to_display_  
field type :   Select  
options :   no,yes  

Reguli de localizare: Taxonomy term add/edit equal to categories.

Imediat ce am creat câmpul personalizat, valorile sunt stocate în baza de date în tabelul wp_postmeta ca:

meta_key:field key value
meta_value:a:12:{s:3:"key";s:19:"field_51d53f2ed1236";s:5:"label";s:17:"Select to display";s:4:"name";s:18:"select_to_display_";s:4:"type";s:6:"select";s:12:"instructions";s:0:"";s:8:"required";s:1:"0";s:7:"choices";a:2:{s:2:"NO";s:2:"NO";s:3:"YES";s:3:"YES";}s:13:"default_value";s:0:"";s:10:"allow_null";s:1:"0";s:8:"multiple";s:1:"0";s:17:"conditional_logic";a:3:{s:6:"status";s:1:"0";s:5:"rules";a:1:{i:0;a:3:{s:5:"field";s:19:"field_51d53f2ed1236";s:8:"operator";s:2:"==";s:5:"value";s:2:"NO";}}s:8:"allorany";s:3:"all";}s:8:"order_no";i:0;} 

Când merg în dashboard->post->categories pot afișa caseta de selectare cu opțiuni, dar când selectez orice opțiune și dau click pe update, se actualizează.

Dar când în index.php

echo get_field(' select_to_display_'); //aici nu se afișează nimic

$field = get_field_object('field_51d3f9c3f5554');

if($field['choices'] == 'false') 
{
    echo 'O valoare este setată';
} else 
{
    echo 'O valoare nu este setată';
}

Întotdeauna primesc "O valoare nu este setată". Nu știu dacă valorile mele selectate sunt salvate în baza de date sau nu. Nu am niciun meta key sau valori precum wp_acf în baza de date.

Dar odată ce selectezi dropdown-ul ca yes în pagina de categorii, se salvează, chiar și după reîmprospătarea paginii valoarea rămâne yes.

Sunt confuz dacă valoarea se salvează în baza de date sau nu.

1
Comentarii

Te rog să incluzi un link către plugin-ul specific despre care întrebi, astfel încât alții să nu trebuiască să ghicească și să piardă timp căutându-l.

Rarst Rarst
4 iul. 2013 17:30:31
Toate răspunsurile la întrebare 1
3

În acest fragment de cod:

$field = get_field_object('field_51d3f9c3f5554');

$field['choices'] va conține un array cu opțiunile disponibile pentru acel câmp, nu valoarea selectată în prezent. $field['value'] conține valoarea selectată curent.

Cu toate acestea, utilizarea get_field_object atunci când tot ce dorești este valoarea selectată în prezent este inutilă.

Pentru utilizarea corectă a get_field(), citește cu atenție documentația pentru a afla ce trebuie să transmiți acestei funcții, în special secțiunea $post_id examples. Termenii de taxonomie nu sunt la fel ca postările, trebuie să transmiți un argument suplimentar sub forma "$taxonomy_$term_id".

EDIT - de asemenea, reține că în apelul tău către get_field(' select_to_display_'), ai un spațiu înaintea numelui cheii, ceea ce va eșua decât dacă cheia este prefixată cu un spațiu, ceea ce presupun că nu este cazul.

4 iul. 2013 19:39:53
Comentarii

Mulțumesc milo dar am încercat și eu nu reușesc să obțin valoarea selectată $field=get_field('select_to_display_',$category_id); echo $field;//nimic nu se afișează echo $field['value'];//nimic nu se afișează

bangari bangari
5 iul. 2013 05:57:49

te rog ajută-mă cu asta, sunt blocat de 3 zile doar pentru a obține valorile selectate

bangari bangari
5 iul. 2013 06:19:49

trebuie să transmiți literal textul category_, apoi ID-ul categoriei adăugat la sfârșit.

Milo Milo
5 iul. 2013 18:52:07