Cómo obtener los valores seleccionados creados por el plugin ACF en WordPress

4 jul 2013, 16:46:09
Vistas: 16.4K
Votos: 1

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.

1
Comentarios

Por favor, enlaza al plugin específico cuando preguntes sobre uno, para que otros no tengan que adivinar y pierdan tiempo buscándolo.

Rarst Rarst
4 jul 2013 17:30:31
Todas las respuestas a la pregunta 1
3

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.

4 jul 2013 19:39:53
Comentarios

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

bangari bangari
5 jul 2013 05:57:49

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

bangari bangari
5 jul 2013 06:19:49

necesitas pasar literalmente el texto category_, luego el ID de la categoría añadido al final.

Milo Milo
5 jul 2013 18:52:07