Cómo obtener los valores seleccionados creados por el plugin ACF en WordPress
Básicamente quiero mostrar un cuadro de selección para que el administrador pueda elegir una opción al crear o editar una categoría, para mostrar la categoría en la página principal con imagen o sin ella.
Utilicé el plugin Advanced Custom Fields para añadir un cuadro de selección en la página de categorías.
Creé un grupo de campos personalizados para mostrar con:
etiqueta del campo: Seleccionar para mostrar
nombre del campo: select_to_display_
tipo de campo: Select
opciones: no, sí
Reglas de ubicación: Término de taxonomía añadir/editar igual a categorías.
Tan pronto como creé el campo personalizado, los valores se almacenan en la base de datos en la tabla wp_postmeta
como:
meta_key: valor de la clave 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;}
Cuando voy al panel->entradas->categorías puedo mostrar el cuadro de selección con opciones, pero cuando selecciono cualquier opción y hago clic en actualizar, se está actualizando.
Pero cuando en index.php
:
echo get_field('select_to_display_'); //aquí no se muestra nada
$field = get_field_object('field_51d3f9c3f5554');
if($field['choices'] == 'false')
{
echo 'Un valor está establecido';
}
else
{
echo 'Un valor no está establecido';
}
Siempre obtengo "Un valor no está establecido". No sé si mis valores seleccionados se están guardando en la base de datos o no. No tengo ninguna meta clave o valores como wp_acf
en la base de datos.
Pero una vez que seleccionas "sí" en el menú desplegable en la página de categoría, se guarda e incluso después de actualizar la página el valor sigue siendo "sí".
Me estoy confundiendo sobre si el valor se está guardando en la base de datos o no.

En este fragmento de código:
$field = get_field_object('field_51d3f9c3f5554');
$field['choices']
contendrá un array de las opciones disponibles para ese campo, no el valor actualmente seleccionado. $field['value']
contiene el valor actualmente seleccionado.
Sin embargo, usar get_field_object
cuando todo lo que necesitas es el valor actualmente seleccionado es innecesario.
Para el uso correcto de get_field()
, lee la documentación cuidadosamente para aprender qué debes pasar a esa función, específicamente la sección de ejemplos de $post_id
. Los términos de taxonomía no son lo mismo que las entradas (posts), debes pasar un argumento adicional en la forma de "$taxonomy_$term_id"
.
EDIT - también ten en cuenta que en tu llamada a get_field(' select_to_display_')
, tienes un espacio antes del nombre de la clave, lo que fallará a menos que la clave realmente tenga un espacio como prefijo, lo cual supongo que no es el caso.

Gracias milo pero lo intenté y aun así no puedo obtener el valor seleccionado $field=get_field('select_to_display_',$category_id); echo $field;//no muestra nada echo $field['value'];//no muestra nada

por favor ayuda con esto, llevo realmente atascado 3 días solo para obtener los valores seleccionados
