Come ottenere i valori di selezione creati dal plugin ACF in WordPress

4 lug 2013, 16:46:09
Visualizzazioni: 16.4K
Voti: 1

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.

1
Commenti

Per favore, includi il link al plugin specifico quando ne parli, in modo che gli altri non debbano indovinare e perdere tempo a cercarlo.

Rarst Rarst
4 lug 2013 17:30:31
Tutte le risposte alla domanda 1
3

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.

4 lug 2013 19:39:53
Commenti

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

bangari bangari
5 lug 2013 05:57:49

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

bangari bangari
5 lug 2013 06:19:49

devi passare letteralmente il testo category_, poi l'ID della categoria aggiunto alla fine.

Milo Milo
5 lug 2013 18:52:07