get_post_meta - obtener un valor único

25 oct 2012, 22:15:07
Vistas: 22.7K
Votos: 1

Cuando ejecuto get_post_meta($post->ID, "company_wp_box_g", false) obtengo un array de pares clave/valor.

array (size=1)
      0 => 
        array (size=7)
          'f_name' => string 'John Doe' (length=14)
          'f_company_name' => string 'Something Ltd' (length=0)
          'f_description' => string '' (length=0)
          'f_phone' => string '0208 992 7222' (length=13)
          'f_cell_phone' => string '07809775200' (length=0)
          'f_email' => string 'jonh.doe@gmail.com' (length=0)
          'f_web' => string 'doe.com' (length=0)

¿Cómo obtener un valor único, por ejemplo f_name?

Solo para información, todo esto ocurre dentro de un foreach loop:

$args = array(
    'numberposts' => -1,
    'post_type' => 'company'
);

$posts = get_posts($args);  


foreach ($posts as $post){ 

    // hacer cosas aquí

}
1
Comentarios

El array puede ser serializado al insertarlo en la base de datos, puedes usar simplemente get_post_meta y almacenarlo en una variable para usarlo como array. http://www.kvcodes.com/2017/06/get_post_meta-example/

Kvvaradha Kvvaradha
11 jun 2017 19:19:33
Todas las respuestas a la pregunta 1
2

Si cada valor meta tiene la clave f_name

$meta = get_post_meta($post->ID, "company_wp_box_g", true);
echo $meta['fname'];

Si no estás seguro del contenido y quieres buscar el primero disponible

$name = false;
$meta = get_post_meta($post->ID, "company_wp_box_g", false);
foreach($meta as $array) {
    if(isset($array['f_name'])) {
        $name = $array['f_name'];
        break;
    }
}
echo $name;
25 oct 2012 22:28:10
Comentarios

¿es posible hacer esto sin usar una variable? get_post_meta($post->ID, "company_wp_box_g", true)->key ??

Iladarsda Iladarsda
25 oct 2012 22:33:26

No puedes usar get_post_meta($post->ID, "company_wp_box_g", true)->key ya que el valor devuelto por la función no es un objeto sino un array, pero probablemente puedas convertirlo a objeto y luego usarlo ((object)get_post_meta($post->ID, "company_wp_box_g", true))->key

Mridul Aggarwal Mridul Aggarwal
25 oct 2012 22:36:37