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Просто код
  Комментарии закрыты.
  • Миша: Привет ещё раз, не поверишь, реально не сталкивался с этим вопросом. По теории можно сказать следующее: во-первых,...

  • Миша: Привет, вообще без проблем, делаешь всё через require(), require_once() - выбирай любую, какая больше нравится.

  • Виталий Моргунов: Привет! Не могу разобаться, как я могу контролировать порядок подключения стилей. В моем случае мне нужно чтобы стили...

  • Миша: Спасибо!

  • w0rmak: Это было просто. Нашел код в интернете. Добавьте и себе ymaps.load(function () { var input = document.getElem...