Campo select di Advanced Custom Fields: Come visualizzare l'etichetta invece del valore?

7 gen 2013, 02:04:00
Visualizzazioni: 45K
Voti: 5

Sto utilizzando il plugin WordPress Advanced Custom Fields.

Questa domanda riguarda il campo select, e nella documentazione viene mostrato solo come visualizzare il valore, non l'etichetta/nome.

Non riesco a trovare questa funzionalità nella documentazione e mi chiedevo se qualcuno avesse qualche idea?

Per esempio, per creare il contenuto del campo Select, si fa semplicemente così...

gb : English
fr : Français
it : Italiano
de : Deutsch
pt : Português
es : Español
nl : Nederlands
be : Belgian
dk : Dansk
fi : Suomi
no : Norske
cz : Český
pl : Polski
hu : Magyar
ch : Schweiz
at : Österreich
eu : International


Poi per visualizzarlo, si scrive questo...

<?php the_field('language'); ?>


Per esempio, se seleziono Polski nell'editor dei post, il PHP mostrerà questo valore...

pl


Mi chiedo se sia possibile visualizzare l'etichetta, vorrei poter mostrare sia Polski che il valore pl.

Se qualcuno conosce documentazione su come fare questo o se potete aiutare con una soluzione sarebbe fantastico.

Grazie in anticipo.

1
Commenti

È molto semplice, basta impostare il Formato di ritorno su Entrambi (Array) nelle impostazioni ACF per questo campo. E poi, quando richiami questo campo in PHP puoi farlo così: $lang = get_field('language'); echo $lang['label'] . ' - questa è l\'etichetta, ' . $lang['value'] . ' - e questo è il valore.';

djboris djboris
17 ott 2018 22:42:33
Tutte le risposte alla domanda 3
0
18

La funzione get_field_object() richiede la CHIAVE del campo, non il NOME del campo. Consulta la documentazione: http://www.advancedcustomfields.com/resources/functions/get_field_object/

Quindi dovrebbe essere qualcosa del genere...

$field = get_field_object('field_53d27f5599979');
$value = get_field('field_myfield');
$label = $field['choices'][ $value ];

Puoi trovare la chiave del campo cliccando su "Opzioni schermo" > "Mostra chiave campo" e apparirà accanto al tipo di campo. Vedi l'immagine animata allegata qui sotto.

Mostra chiave campo

9 ago 2014 22:57:10
2

Ecco la soluzione per una migliore lettura.

// Ottiene l'oggetto del campo ACF
$field = get_field_object('field_name');
// Ottiene il valore del campo
$value = get_field('field_name');
// Ottiene l'etichetta associata al valore
$label = $field['choices'][ $value ];

Il valore in $label sarà l'etichetta relativa al valore impostato in $value.

9 apr 2014 23:06:06
Commenti

La documentazione di ACF è errata su questa parte. Devi usare la field key per get_field_object.

In questo modo: get_field_object( 'field_5682538b28a71' );

Per ottenere la tua field key, quando sei nella schermata di modifica di ACF, apri Screen Options e abilita le field keys

Andrew Lazarus Andrew Lazarus
30 dic 2015 16:39:30

@AndrewLazarus Il campo key non è più obbligatorio. Funziona perfettamente con il field label.

Jacob Raccuia Jacob Raccuia
31 ott 2017 08:14:36
0

Nel caso possa essere utile a qualcun altro.

Per visualizzare il valore di un campo select di ACF:

$a = get_field_object('field_1234567');
echo $a['value'];

(dove field_1234567 è la chiave del campo ottenuta selezionando 'Mostra chiave campo' nelle Opzioni schermo)

2 dic 2015 00:06:40