Campo select de Advanced Custom Fields: ¿Cómo mostrar la etiqueta en lugar del valor?

7 ene 2013, 02:04:00
Vistas: 45K
Votos: 5

Estoy usando el plugin Advanced Custom Fields de WordPress.

Esta pregunta es sobre el campo select, y en la documentación solo me indica cómo mostrar el valor, no la etiqueta/nombre.

No puedo ver esta funcionalidad en la documentación y me preguntaba si alguien tenía alguna idea.

Por ejemplo, para crear el contenido del campo Select, simplemente haces esto...

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


Luego, para mostrar esto, escribes esto...

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


Por ejemplo, si selecciono Polski en mi editor de entradas, el PHP mostrará este valor...

pl


Me pregunto si es posible mostrar la etiqueta, también quiero poder mostrar Polski, así como el valor pl.

Si alguien conoce alguna documentación sobre cómo hacer esto o si pudiera ayudar con una solución, sería fantástico.

Gracias de antemano.

1
Comentarios

Es muy simple, solo configura el Formato de retorno como Ambos (Array) en los ajustes de ACF para este campo. Y luego, cuando llames a este campo en PHP puedes hacerlo así: $lang = get_field('language'); echo $lang['label'] . ' - esto es la etiqueta, ' . $lang['value'] . ' - y esto es el valor.';

djboris djboris
17 oct 2018 22:42:33
Todas las respuestas a la pregunta 3
0
18

La función get_field_object() requiere la CLAVE del campo, no el NOMBRE del campo. Consulta la documentación: http://www.advancedcustomfields.com/resources/functions/get_field_object/

Por lo tanto, debería verse algo así...

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

Puedes encontrar la clave del campo haciendo clic en "Opciones de pantalla" > "Mostrar clave de campo" y debería aparecer junto al tipo de campo. Mira el GIF animado adjunto a continuación.

Mostrar Clave de Campo - ACF

9 ago 2014 22:57:10
2

Publicando la solución aquí para una mejor lectura.

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

El valor en $label será la etiqueta relacionada con el valor establecido en $value.

9 abr 2014 23:06:06
Comentarios

La documentación de ACF está equivocada en esta parte. Necesitas usar la field key para get_field_object.

Así: get_field_object( 'field_5682538b28a71' );

Para obtener tu field key, cuando estés en la pantalla de edición de ACF, abre Screen Options y activa las field keys

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

@AndrewLazarus El field key ya no es necesario. Funciona perfectamente con el field label.

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

Por si a alguien más le sirve.

Para mostrar el valor de un campo select de ACF:

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

(donde field_1234567 es la clave del campo que se obtiene seleccionando 'Mostrar clave de campo' en las Opciones de pantalla)

2 dic 2015 00:06:40