WordPress: obtenga todos los valores de un campo personalizado

2 minutos de lectura

Estoy usando Verve Meta Boxes. Quiero hacer un menú a partir de uno de los campos personalizados. ¿Cómo puedo devolver todos los valores de los campos personalizados? Por ejemplo, si tuviera un campo de selección personalizado llamado “fruta” y como opciones tengo “manzanas”, “naranjas” y “plátanos”, ¿cómo podría obtener una lista completa de esos valores, tal vez como una matriz? Puedo obtener los asociados con una publicación:

get_post_custom_values('fruit')

… pero no puedo averiguar cómo obtener la lista completa.

¡Gracias de antemano!

En caso de que alguien todavía se pregunte:

global $wpdb;
$results = $wpdb->get_results( 'SELECT DISTINCT meta_value FROM wp_postmeta WHERE meta_key LIKE "FIELD_NAME"', OBJECT );

Solo asegúrese de que su tabla postmeta sea “wp_postmeta” (predeterminada) y cambie FIELD_NAME con el nombre que creó para el campo en el administrador.

  • Esto se ve mejor que mi solución hacky. Lo intentaré cuando tenga la oportunidad, pero se ve bien y apuesto a que funciona. ¡Gracias!

    – Imaginario

    16 de diciembre de 2014 a las 23:27

Puede hacerlo de la forma habitual en wordpress utilizando la función get_post_meta en su ciclo.

  • ¿Eso no obtiene solo los valores asociados con una publicación específica, al igual que mi get_post_custom_values?

    – Imaginario

    14 de febrero de 2012 a las 17:24

Prueba este:

$fruits = trim(get_post_meta($post->ID,'fruits',true)); 
$fruits_array = explode(',',$fruits);
foreach($fruits_array as $f){
   echo $f.'<br/>';
}

Básicamente, debe separar el nombre de sus frutas con una coma en su campo personalizado para que pueda explotarlas en una matriz y hacer eco de los valores uno por uno.

gracias

  • Nunca vi esto, lo siento. Nuevamente, esto solo obtendría los valores asociados con una sola publicación. Necesitaba obtener todas las opciones disponibles, ya sea que se aplicaran a una sola publicación o no.

    – Imaginario

    22 de septiembre de 2012 a las 18:03

No pude encontrar una solución elegante. Lo que terminé haciendo fue recorrer todas las publicaciones y mantener un registro de los valores únicos que pude entre ellas, creando una matriz. Luego usé esa matriz para hacer mi navegación.

¿Ha sido útil esta solución?