Функция get_post_custom_keys()
в WordPress позволяет извлекать имена метаполей (произвольных полей) для конкретного поста. Это полезно, когда вам нужно получить список всех метаполей, связанных с записью, и вывести их ключи. Если у поста нет произвольных полей, функция вернет null
.
get_post_custom_keys( int $post_id = 0 ): array|void
Параметры:
- $post_id (int, необязательный): ID поста, ключи произвольных полей которого нужно получить. По умолчанию используется ID текущего поста из глобальной переменной
$post
.
Возвращаемое значение: array|void
— массив ключей метаполей, если они существуют, или ничего (null), если метаполей нет.
Как это работает:
Функция get_post_custom_keys()
полезна для получения всех ключей метаполей, связанных с постом. Важно отметить, что ключи, начинающиеся с символа подчеркивания (_
), обычно используются внутренне WordPress, и их можно исключить из результата, если это необходимо.
Пример 1: Получение ключей метаполей текущей записи
Следующий пример демонстрирует, как получить массив с ключами произвольных полей текущего поста и вывести их на экран, исключая внутренние ключи.
$custom_field_keys = get_post_custom_keys();
if ($custom_field_keys) {
foreach ($custom_field_keys as $key => $value) {
$trimmed_value = trim($value);
// Исключаем внутренние ключи, начинающиеся с '_'
if ('_' === $trimmed_value[0]) {
continue;
}
echo "$key => $value<br />";
}
} else {
echo "Нет произвольных полей для текущего поста.";
}
Ожидаемый вывод:
0 => mykey
1 => yourkey
Пример 2: Получение ключей метаполей для конкретного поста
Если вы хотите получить ключи метаполей не для текущего поста, а для конкретного, вы можете передать его ID в качестве параметра:
$post_id = 55; // Замените на ID поста, для которого нужно получить ключи
$custom_field_keys = get_post_custom_keys($post_id);
if ($custom_field_keys) {
foreach ($custom_field_keys as $key => $value) {
$trimmed_value = trim($value);
// Исключаем внутренние ключи
if ('_' === $trimmed_value[0]) {
continue;
}
echo "Пост $post_id: $key => $value<br />";
}
} else {
echo "Нет произвольных полей для поста $post_id.";
}
Пример 3: Использование в шаблонах
Вы можете использовать get_post_custom_keys()
в файлах шаблонов, чтобы динамически отображать ключи метаполей на страницах. Например, можно использовать эту функцию в single.php
:
if (have_posts()) {
while (have_posts()) {
the_post();
$custom_field_keys = get_post_custom_keys();
echo '<h1>' . get_the_title() . '</h1>';
if ($custom_field_keys) {
echo '<ul>';
foreach ($custom_field_keys as $key => $value) {
$trimmed_value = trim($value);
// Исключаем внутренние ключи
if ('_' === $trimmed_value[0]) {
continue;
}
echo "<li>$key => $value</li>";
}
echo '</ul>';
} else {
echo "Нет произвольных полей для этого поста.";
}
}
}
Заключение
Функция get_post_custom_keys()
— это мощный инструмент для работы с метаполями в WordPress. Она позволяет разработчикам эффективно извлекать и отображать ключи произвольных полей, что значительно расширяет возможности тем и плагинов. Используя эту функцию, вы можете управлять метаданными постов и улучшать пользовательский интерфейс.