get_post_meta - получение единичного значения

25 окт. 2012 г., 22:15:07
Просмотры: 22.7K
Голосов: 1

Когда я использую get_post_meta($post->ID, "company_wp_box_g", false), я получаю массив пар ключ/значение.

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)

Как получить отдельное значение, например f_name?

Для информации: всё происходит внутри foreach цикла:

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

$posts = get_posts($args);  


foreach ($posts as $post){ 

    // выполнить действия

}
1
Комментарии

Массив можно сериализовать при вставке в базу данных, вы можете просто использовать get_post_meta, сохранить его в переменной и использовать как массив. http://www.kvcodes.com/2017/06/get_post_meta-example/

Kvvaradha Kvvaradha
11 июн. 2017 г. 19:19:33
Все ответы на вопрос 1
2

Если каждое мета-значение имеет ключ f_name

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

Если вы не уверены в содержимом и хотите найти первое доступное значение

$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 окт. 2012 г. 22:28:10
Комментарии

можно ли сделать это без использования переменной? get_post_meta($post->ID, "company_wp_box_g", true)->key ??

Iladarsda Iladarsda
25 окт. 2012 г. 22:33:26

Вы не можете использовать get_post_meta($post->ID, "company_wp_box_g", true)->key, так как возвращаемое значение функции - это не объект, а массив, но вы можете, вероятно, преобразовать его в объект и затем использовать ((object)get_post_meta($post->ID, "company_wp_box_g", true))->key

Mridul Aggarwal Mridul Aggarwal
25 окт. 2012 г. 22:36:37