get_post_meta() — получает значение произвольного поля поста

Функция, позволяющая получить параметры поста (значения произвольных полей).

get_post_meta($post_id, $key = '', $single = false)
$post_id
(целое число) ID поста, значение произвольного поля которого будем получать.
$key
(строка) Ключ, название произвольного поля. Если не указано, функция вернет массив всех произвольных полей для указанного поста.
$single
(логическое) может принимать значения:

  • false — возвращает все значения произвольных полей с указанным ключом в виде массива,
  • true — возвращает самое первое значение произвольного поля с указанным ключом в виде строки;

Примеры

Вытаскиваем массив всех значений всех произвольных полей для поста с ID = 5:

$fields = get_post_meta( 5 );

Все значения произвольных полей с ключом color для того же поста:

$fields = get_post_meta( 5, 'color' );

Одно, самое первое значение произвольного поля:

$field = get_post_meta( 5, 'color', true );

Комментарии 9

  • Сергей29 сентября 2015 в 11:09 #

    Функция the_meta() работает и выводит все произвольные поля на странице в том месте, где я указал ее в коде. А вот get_post_meta() ничего не выводит. Указываю id поста и название поля. Все так как у Вас в статье. Какова может быть причина что данная функция ничего не выводит? :(

    • Миша30 сентября 2015 в 09:09 #
      1. Убедитесь, что ID поста, который вы указываете, существует.
      2. Зайдите на страницу редактирования этого поста в админке и убедитесь, что произвольное поле с заданным ключем имеется.
      3. Третий параметр get_post_meta() должен быть true, у вас так?
      • Сергей30 сентября 2015 в 11:09 #

        1 и 2 условия соблюдены. Вчера вечером решил вопрос - заработал вот такой код т.е. добавил echo, ну и true, конечно :)
        Спасибо за ответ.

  • Юрий9 октября 2015 в 14:10 #

    Когда вывожу посты через get_post_meta($post->ID,'',false) (мне нужны все поля со всеми ключами для всех постов), вордпресс выводит ключи, которые начинаются с нижнего подчёркивания вместе с их значениями (_edit_last, _edit_lock, _thumbnail_id). Подскажите, пожалуйста, как можно отменить их отображение

  • Артур1 января 2016 в 23:01 #
    <?php echo (get_post_meta($post->ID, 'user_submit_name', $single = true)); ?>

    Как в данном примере обернуть dКак обернуть user_submit_name в div? Но только внутри php?

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • alex morozov: Добрый вечер! у меня возникла следующая проблема. Я делаю фотоальбомы, чтобы они выглядели "как в контакте". Так вот, та...

  • Vladislav: Если эту муть убрать, то исчезает меню, и появляется описание под миниатюрами, которого не должно быть, как вы видите, я...

  • Миша: Либо размеры изображений вам помогут, либо CSS. И строку 14 гляньте, там муть какая-то.

  • Vladislav: Подправил имеющийся у меня код, по вашим рекомендациям, миниатюры начали отображаться, но они стали очень огромными, что...

  • Миша: Лишь предложил решение. Думаю можно нашаманить и так, чтобы чисто для рубрик было, не уверен только, что обойдётся без и...