Если к записи нужно прикрепить не только заголовок и текст, а ещё цену, дату события, источник, статус или короткую метку, для этого в WordPress обычно используют пользовательские поля. Это встроенный механизм: значение хранится вместе с записью и потом выводится в шаблоне темы или в блоке.
Для базовой задачи не нужен отдельный плагин и не нужна сложная разработка. Достаточно понять, как сохранить поле в админке, как получить его в шаблоне и что делать, если значение не выводится.
Что такое пользовательские поля в WordPress
Пользовательское поле — это пара «ключ и значение», привязанная к записи, странице или другому типу контента. Ключ — это имя поля, например price или source. Значение — конкретные данные: 1990, 2026-10-01, Яндекс.
На практике это удобно, когда у записи есть дополнительная структурированная информация, которую не стоит прятать в текст статьи. Например:
- цена товара или услуги;
- дата публикации события;
- источник новости;
- статус заявки или проекта;
- короткая метка для вывода в карточке.
Если данные должны быть одинаковыми по структуре у многих записей, пользовательские поля подходят лучше, чем ручная вставка текста в контент.
Как добавить пользовательское поле в админке WordPress
В классическом редакторе WordPress блок пользовательских полей обычно можно включить через настройки экрана. В редакторе блоков Gutenberg этот блок тоже доступен, но в некоторых установках он скрыт по умолчанию.
Чтобы добавить поле вручную:
- Откройте нужную запись или страницу в админке.
- Включите блок «Пользовательские поля», если он не виден.
- Добавьте новое поле.
- Укажите ключ, например
price. - Введите значение, например
1990. - Сохраните запись.
Если блок не отображается в редакторе блоков, в конкретной версии WordPress его может потребоваться включить через настройки интерфейса редактора. В старых темах и классическом редакторе этот раздел обычно доступен проще.
Для проверки после сохранения откройте ту же запись снова и убедитесь, что поле осталось в списке. Если значение пропадает, проблема чаще всего не в шаблоне, а в том, что запись не была сохранена или поле добавлено не в тот объект контента.
Как вывести значение пользовательского поля в шаблоне
Самый прямой способ — получить значение через get_post_meta() и вывести его в нужном месте шаблона. Обычно это делают в файлах темы: single.php, content-single.php, шаблоне карточки записи или в части шаблона, которая отвечает за мета-информацию.
Для одного поля код выглядит так:
<?php
$price = get_post_meta( get_the_ID(), 'price', true );
if ( $price !== '' ) {
echo '<p class="post-price">' . esc_html( $price ) . '</p>';
}
?>Здесь важно несколько моментов. Первый аргумент — ID текущей записи. Второй — ключ поля. Третий аргумент true говорит WordPress вернуть одно значение, а не массив. Перед выводом значение лучше экранировать через esc_html(), если вы выводите обычный текст.
Если поле должно быть частью HTML-разметки, например ссылкой или меткой, используйте подходящий способ экранирования и не вставляйте значение в шаблон без проверки.
Пример вывода цены и источника
Когда нужно вывести сразу несколько полей, удобнее собрать их в одном месте и показать только те, что реально заполнены:
<?php
$price = get_post_meta( get_the_ID(), 'price', true );
$source = get_post_meta( get_the_ID(), 'source', true );
if ( $price !== '' ) {
echo '<p class="post-price">Цена: ' . esc_html( $price ) . '</p>';
}
if ( $source !== '' ) {
echo '<p class="post-source">Источник: ' . esc_html( $source ) . '</p>';
}
?>Такой подход удобен для карточек записей, страниц услуг и новостных материалов. Если поле пустое, лишний HTML не выводится.
Как работать с пользовательскими полями через редактор блоков
В Gutenberg пользовательские поля можно использовать и без правки шаблона, но для вывода на сайте всё равно нужен шаблонный код или блок, который умеет читать метаданные. Если задача простая, обычно достаточно встроенного механизма и небольшого фрагмента PHP в теме.
Если вы редактируете только контент, а не тему, имейте в виду: само по себе заполнение поля в админке ничего не покажет на сайте, пока тема не запросит это значение. Это частая причина путаницы у владельцев сайтов: поле есть, но на фронтенде его не видно.
Что проверить, если поле не выводится
Когда значение не появляется на сайте, обычно проблема в одном из этих мест:
- ключ поля в шаблоне не совпадает с ключом в админке;
- поле сохранено не у той записи;
- в шаблоне используется не тот файл темы;
- значение пустое, а код выводит только непустые поля;
- тема переопределяет шаблонную часть, где вы внесли правку;
- значение экранируется или форматируется не так, как вы ожидаете.
Самая полезная проверка — временно вывести значение прямо в шаблоне рядом с местом вывода. Если get_post_meta() возвращает пустую строку, значит WordPress не видит метаданные у текущей записи или ключ указан неверно.
Ещё один практический способ — посмотреть исходный HTML страницы. Если в коде есть нужный блок, но он пустой, значит проблема в данных. Если блока нет совсем, значит условие в шаблоне не сработало или вы редактируете не тот файл.
Когда лучше использовать не ручные поля, а произвольный тип данных
Пользовательские поля хороши для нескольких дополнительных значений у записи. Но если у объекта много связанных параметров, например у каталожной карточки есть цена, артикул, бренд, наличие и несколько дат, удобнее подумать о произвольном типе записи или о более структурированном решении. Иначе шаблон быстро превращается в набор разрозненных метаполей без логики.
Для базового сценария — цена, источник, статус, дата, короткая метка — пользовательских полей достаточно. Это самый простой и надёжный способ хранить дополнительную информацию без лишней сложности.
Минимальный рабочий сценарий
Если нужен короткий план без лишних шагов, он такой:
- Добавьте пользовательское поле в записи через админку.
- Запомните точный ключ поля.
- Откройте шаблон темы, где должен появиться вывод.
- Получите значение через
get_post_meta(). - Выведите его с экранированием.
- Проверьте результат на фронтенде и в исходном HTML.
На этом базовая работа с custom fields в WordPress заканчивается. Дальше всё упирается в аккуратность шаблона: правильный ключ, правильный файл темы и безопасный вывод значения.