WordPress как на ладони
wordpress jino

get_post_custom_values() WP 1.2.0

Возвращает массив значений произвольных полей с определенным названием у определенного поста.

Эта функция может пригодится, если нужно получить значение произвольного поля, когда у поста имеются несколько полей с одинаковыми названиями ключей и разными значениями. В противном случае, удобнее использовать функцию get_post_meta().

Работает на основе: get_post_custom()

Хуков нет.

Использование

get_post_custom_values( $key, $post_id );
$key(строка) (обязательный)
Название произвольного поля (ключ произвольного поля), значения которого нужно получить.
По умолчанию: нет
$post_id(число)
ID поста, произвольные поля которого нужно получить.
По умолчанию: Текущий пост (определяется по переменной $post)

Примеры

#1. Выведем значения произвольных полей на экран

Предположим, что текущий пост имеет 3 произвольных поля с одинаковым ключом my_key, давайте выведем их на экран используя get_post_custom_values:

$mykey_values = get_post_custom_values('my_key');
foreach( $mykey_values as $key => $value ) {
	echo "$key  => $value ('my_key')<br />"; 
}

В результате на экране мы увидим:
0 => первое значение ключа 'my_key'
1 => второе значение ключа 'my_key'
2 => третье значение ключа 'my_key'

Код get post custom values: wp-includes/post.php WP 4.8.2

<?php
function get_post_custom_values( $key = '', $post_id = 0 ) {
	if ( !$key )
		return null;

	$custom = get_post_custom($post_id);

	return isset($custom[$key]) ? $custom[$key] : null;
}

Cвязанные функции

Из раздела: Произвольные поля (postmeta)

get_post_custom_values 4 комментария
  • Егор @

    Вечер добрый!
    Переделал все записи на сайте через произвольные поля, то есть функция the_content() у меня ни чего не выводит, только произвольные поля!

    В конфиге включил показ ошибок и на каждое произвольное поле выдает ошибку Notice: Undefined offset: 5 (и так далее - 6,7,8...)

    Задаю так:

    <?php $ingredients = get_post_custom_values('ingredients'); ?>

    Вывожу так:

    <?=($ingredients[0]) ? '<li itemprop="ingredients">'.$ingredients[0].'</li>': ''; ?>

    Плиз хелп help

    Ответить2.1 года назад #
    • Егор @

      Получается я Вас обманул)

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

      <?=($ingredients[0]) ? '<li itemprop="ingredients">'.$ingredients[0].'</li>': ''; ?>
      <?=($ingredients[1]) ? '<li itemprop="ingredients">'.$ingredients[1].'</li>': ''; ?>
      <?=($ingredients[2]) ? '<li itemprop="ingredients">'.$ingredients[2].'</li>': ''; ?>
      <?=($ingredients[3]) ? '<li itemprop="ingredients">'.$ingredients[3].'</li>': ''; ?>

      и так далее - 25 короче вывел.

      Так вот нотисы выводятся к полям в которых нет ингредиентов, просто я думал, что стоит проверка и на этом все.
      Как быть подскажите?

      Ответить2.1 года назад #

Здравствуйте, !

Ваш комментарий