Функция get_post_custom_values()
в WordPress позволяет извлекать значения произвольных полей (метаполей) для заданного поста. Это особенно полезно, когда пост содержит несколько значений с одинаковыми ключами, так как функция вернет все соответствующие значения, а не только первое.
get_post_custom_values( string $key = '', int $post_id = 0 ): array|null
Параметры:
- $key (string, необязательный): Ключ метаполя, значения которого необходимо получить. По умолчанию пустая строка.
- $post_id (int, необязательный): ID поста. По умолчанию используется ID текущего поста из глобальной переменной
$post
.
Возвращаемое значение: array|null
— массив значений метаполей для указанного ключа или null
, если метаполя не найдены.
Как это работает:
Функция get_post_custom_values()
полезна, когда у вас есть несколько метаполей с одинаковыми ключами и вы хотите получить все их значения. Для получения одного значения можно использовать get_post_meta()
, однако в случаях с множественными значениями лучше использовать именно эту функцию.
Пример 1: Вывод значений произвольных полей на экран
Предположим, у нас есть пост с тремя значениями для произвольного поля с ключом custom_key
. Мы можем извлечь и вывести их следующим образом:
$custom_values = get_post_custom_values('custom_key');
if ($custom_values) {
foreach ($custom_values as $index => $value) {
echo "$index => $value ('custom_key')<br />";
}
} else {
echo "Нет значений для ключа 'custom_key'.";
}
Ожидаемый вывод:
0 => Первое значение ('custom_key')
1 => Второе значение ('custom_key')
2 => Третье значение ('custom_key')
Пример 2: Получение значений для конкретного поста
Если вы хотите получить значения метаполей не для текущего поста, а для конкретного, вы можете передать его ID в качестве второго параметра:
$post_id = 42; // ID поста, значения которого мы хотим получить
$custom_values = get_post_custom_values('custom_key', $post_id);
if ($custom_values) {
foreach ($custom_values as $index => $value) {
echo "Пост $post_id: $index => $value ('custom_key')<br />";
}
} else {
echo "Нет значений для ключа 'custom_key' у поста $post_id.";
}
Пример 3: Использование в шаблонах
Эта функция может быть полезна в шаблонах, где вам нужно динамически отображать значения метаполей. Например, вы можете использовать её в файле single.php
, чтобы показать все значения произвольного поля:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$custom_values = get_post_custom_values('custom_key');
echo '<h1>' . get_the_title() . '</h1>';
if ($custom_values) {
echo '<ul>';
foreach ($custom_values as $index => $value) {
echo "<li>$index => $value</li>";
}
echo '</ul>';
} else {
echo "Нет значений для 'custom_key'.";
}
}
}
Заключение
Функция get_post_custom_values()
является мощным инструментом для работы с метаполями в WordPress, позволяя разработчикам эффективно извлекать значения произвольных полей. Используя её, вы можете легко управлять данными, связанными с постами, что значительно расширяет функциональность ваших тем и плагинов.