Come ottenere i valori di selezione creati dal plugin ACF in WordPress
In sostanza voglio mostrare una select box affinché l'amministratore possa selezionare un'opzione durante la creazione o modifica di una categoria, per visualizzare la categoria nella pagina frontale con o senza immagine.
Uso il plugin Advanced Custom Fields per aggiungere una select box nella pagina delle categorie.
Ho creato un gruppo di campi personalizzati "display" con:
etichetta campo: Seleziona per visualizzare
nome campo: select_to_display_
tipo campo: Select
opzioni: no,yes
Regole di posizionamento: Termine tassonomia aggiungi/modifica uguale a categorie.
Appena creo il campo personalizzato, i valori vengono salvati nel database nella tabella wp_postmeta
come:
meta_key: valore della chiave del campo
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;}
Quando vado su dashboard->post->categorie posso visualizzare la select box con le opzioni, ma quando seleziono un'opzione e clicco su aggiorna, viene aggiornata.
Tuttavia in index.php
:
echo get_field('select_to_display_'); // qui non viene visualizzato nulla
$field = get_field_object('field_51d3f9c3f5554');
if($field['choices'] == 'false')
{
echo 'Un valore è impostato';
}
else
{
echo 'Un valore non è impostato';
}
Ottengo sempre "Un valore non è impostato". Non so se i miei valori selezionati vengono salvati nel database. Non ho nessun meta key o valori come wp_acf
nel database.
Ma una volta che selezioni "yes" nel dropdown nella pagina delle categorie, il valore viene salvato e persiste anche dopo il refresh della pagina.
Sono confuso sul fatto che il valore venga effettivamente salvato nel database o meno.

In questo frammento di codice:
$field = get_field_object('field_51d3f9c3f5554');
$field['choices']
conterrà un array delle scelte disponibili per quel campo, non il valore attualmente selezionato. $field['value']
contiene il valore attualmente selezionato.
Tuttavia, utilizzare get_field_object
quando tutto ciò che ti serve è il valore attualmente selezionato è superfluo.
Per un uso corretto di get_field()
, leggi attentamente la documentazione per capire cosa devi passare a questa funzione, in particolare la sezione $post_id examples
. I termini di tassonomia non sono la stessa cosa dei post, devi passare un argomento aggiuntivo nella forma "$taxonomy_$term_id"
.
NOTA - inoltre, nella tua chiamata a get_field(' select_to_display_')
, hai uno spazio prima del nome della chiave, che fallirà a meno che la chiave non sia effettivamente preceduta da uno spazio, cosa che presumo non sia il caso.

Grazie milo ma ho provato e non riesco comunque a ottenere il valore selezionato $field=get_field('select_to_display_',$category_id); echo $field;//non mostra nulla echo $field['value'];//non mostra nulla

per favore aiutami con questo, sono davvero bloccato da 3 giorni per una semplice cosa come ottenere i valori selezionati
