Cum să obții valorile selectate create de plugin-ul ACF în WordPress
Î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.

Î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.

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ă

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