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 или следите за мной в социальных сетях.
  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.

  • Артем: Ага, понял. Вот только почему $args? Она же нигде не определена, по логике должна быть переменная $true_field_params или...