Кастомные поля нужны, когда к записи, странице или товару нужно привязать дополнительную информацию: цену, дату события, номер телефона, ссылку, автора материала, короткую заметку для шаблона. В WordPress это можно сделать без отдельного плагина: через встроенные произвольные поля, через блоки темы или через код в шаблоне. Выбор зависит от того, как именно вы хотите хранить и показывать данные.
Если задача простая и поля нужны только для нескольких записей, достаточно встроенного механизма WordPress. Если данные должны выводиться в одном и том же месте на сайте и не теряться при обновлении темы, лучше сразу использовать шаблонный код или дочернюю тему.
Что такое кастомные поля в WordPress
Кастомное поле в WordPress — это пара «ключ-значение», привязанная к конкретной записи. Ключ — это имя поля, например price или event_date. Значение — сам текст, число, ссылка или другой простой формат. WordPress хранит такие данные отдельно от основного содержимого записи.
Это удобно, когда контент состоит из двух частей: основного текста и служебной информации. Например, в статье может быть дата мероприятия, в карточке товара — артикул, в странице услуги — телефон менеджера. Не стоит использовать кастомные поля для всего подряд: если данные должны редактироваться как полноценный контент с отдельной структурой, иногда лучше подходит отдельный тип записи или специализированный плагин. Но для простой дополнительной информации кастомные поля — самый прямой вариант.
Как добавить кастомное поле в записи или странице
В WordPress есть встроенный интерфейс для произвольных полей. В новых версиях редактора блоков он может быть скрыт по умолчанию, но его можно включить без установки плагинов.
Включите панель «Произвольные поля»
Откройте нужную запись или страницу в редакторе. В правом верхнем углу нажмите меню с тремя точками, затем откройте настройки редактора и включите панель Произвольные поля. После этого внизу редактора появится блок, где можно добавить новое поле.
Если вы работаете в классическом редакторе, блок произвольных полей обычно доступен сразу, если он не отключён в настройках экрана.
Добавьте ключ и значение
В панели произвольных полей нажмите «Добавить произвольное поле». Укажите имя поля и значение. Например:
price — 4900
event_date — 2026-02-14
phone — +7 999 123-45-67
После сохранения записи WordPress запомнит это значение именно для этой записи. У другой записи может быть тот же ключ, но другое значение.
Как вывести значение кастомного поля на сайте
Самый надёжный способ — вывести поле в шаблоне темы через PHP. Так вы контролируете место вывода и формат. Для этого обычно используют функцию get_post_meta().
Если нужно вывести значение внутри шаблона записи, страницы или отдельного шаблонного файла, используйте такой код:
<?php
$price = get_post_meta( get_the_ID(), 'price', true );
if ( $price !== '' ) {
echo '<p class="product-price">' . esc_html( $price ) . '</p>';
}
?>Здесь get_post_meta() получает значение поля price для текущей записи. Параметр true нужен, чтобы вернуть одно значение, а не массив. Функция esc_html() защищает вывод от лишнего HTML и случайных символов.
Если вы выводите ссылку, используйте другую функцию экранирования, например esc_url():
<?php
$link = get_post_meta( get_the_ID(), 'buy_link', true );
if ( $link ) {
echo '<a href="' . esc_url( $link ) . '">Купить</a>';
}
?>Где именно вставлять код
Код можно добавить в файл шаблона темы, где должен появиться вывод: single.php, page.php, content-single.php или другой файл, который использует ваша тема. В современных темах на блоках логика может быть другой, но принцип тот же: значение поля нужно получить и вывести в нужном шаблоне.
Если вы правите файлы темы напрямую, изменения могут потеряться после обновления. Для рабочей установки безопаснее использовать дочернюю тему. Это особенно важно, если сайт уже в продакшене и вы не хотите случайно сломать верстку при обновлении.
Когда нужно добавить вывод без редактирования шаблонов, можно использовать хук темы или плагина, если он предусмотрен. Но для обычной задачи с кастомным полем проще и понятнее править шаблон напрямую или через дочернюю тему.
Как вывести кастомное поле в цикле записей
Иногда поле нужно показывать не только на странице записи, но и в списке материалов: на главной, в архиве, в блоке похожих записей. Тогда код вставляют внутрь цикла WordPress. Пример для короткой подписи:
<?php
$subtitle = get_post_meta( get_the_ID(), 'subtitle', true );
if ( $subtitle ) {
echo '<span class="entry-subtitle">' . esc_html( $subtitle ) . '</span>';
}
?>Такой подход хорош, если поле должно быть видно в нескольких местах. Но не дублируйте вывод без необходимости: если значение нужно только на странице записи, не стоит тянуть его во все архивы и карточки.
Как работать с кастомными полями у страниц и товаров
Кастомные поля работают не только у записей. Их можно использовать у страниц и у любого другого типа записи, если он поддерживает метаполя. Для страниц это обычный сценарий: например, можно хранить телефон, адрес, время работы или ссылку на форму.
С товарами ситуация зависит от того, чем именно вы пользуетесь. Если это стандартный тип товара в WooCommerce, у него уже есть свои поля и метабоксы. Но вы всё равно можете добавить собственные метаполя, если стандартных атрибутов недостаточно. В этом случае логика вывода остаётся той же: значение сохраняется в метаполе и читается через get_post_meta().
Как проверить, что поле работает
После сохранения записи откройте её на сайте и проверьте три вещи:
- значение действительно сохранено в админке;
- код выводит его только там, где нужно;
- если поле пустое, на странице не появляется лишняя пустая обёртка.
Последний пункт особенно важен. Если не проверять пустое значение, можно получить пустые абзацы, лишние отступы или сломанный блок в шаблоне. Поэтому условие if ( $value ) или if ( $value !== '' ) лучше не пропускать.
Типичные ошибки при выводе кастомных полей
Чаще всего проблемы возникают не в самом хранении, а в выводе.
- Неверный ключ поля. Если в коде указан
price, а в админке созданоPriceилиproduct_price, значение не появится. - Код вставлен не в тот шаблон. Иногда правят файл, который тема вообще не использует для нужной страницы.
- Нет экранирования. Если выводить значение без
esc_html()илиesc_url(), можно получить проблемы с безопасностью и версткой. - Изменения внесены в родительскую тему. После обновления они исчезнут.
Если поле не выводится, сначала проверьте сам ключ в админке, потом убедитесь, что код выполняется именно на той странице, где вы ждёте результат. В большинстве случаев проблема находится именно здесь.
Когда встроенных кастомных полей уже недостаточно
Если вам нужно много полей, сложная структура данных, повторяющиеся группы или удобный интерфейс для редакторов, встроенного механизма WordPress может быть мало. Тогда обычно используют специализированные решения для метаполей или создают собственный метабокс. Но для простой задачи — добавить одно-два дополнительных значения и вывести их в шаблоне — встроенные кастомные поля полностью закрывают потребность.
Практически это выглядит так: сначала вы добавляете поле в нужную запись, затем в шаблоне получаете значение через get_post_meta(), проверяете его на пустоту и выводите в нужном месте с экранированием. На этом базовая схема заканчивается, и именно она чаще всего нужна владельцам сайтов и разработчикам без лишней сложности.