Пользовательские поля в WordPress нужны, когда к записи, странице или товару надо привязать дополнительную информацию: цену, автора материала, дату события, ссылку на источник, номер телефона, короткую заметку для вывода в шаблоне. Это не замена содержимому редактора, а отдельные метаданные, которые удобно хранить и использовать в теме или в плагине.
Сделать это можно без сложной разработки. В WordPress уже есть встроенные custom fields, а если нужен более удобный интерфейс, их обычно подключают через плагин. Дальше важно не только сохранить значение, но и безопасно вывести его на сайте.
Когда пользовательские поля действительно нужны
Если информация должна повторяться у многих материалов и выводиться в одном и том же месте, custom fields подходят лучше обычного текста в редакторе. Например, у новостей это может быть источник и дата публикации, у мероприятий — место и время, у карточек услуг — цена и срок выполнения.
Если же данные нужны только для одного текста и не участвуют в шаблоне, отдельное поле обычно не требуется. В таком случае проще оставить информацию в основном контенте.
Как включить встроенные пользовательские поля в WordPress
В современных версиях WordPress блок Пользовательские поля может быть скрыт в редакторе. Его можно включить вручную, если вы работаете с обычными записями или страницами и не хотите ставить плагин.
- Откройте нужную запись или страницу в редакторе.
- Нажмите меню с тремя точками в правом верхнем углу.
- Выберите Настройки и откройте раздел с панелями.
- Включите пункт Пользовательские поля.
После этого внизу редактора появится блок, где можно добавить имя поля и его значение. WordPress сохранит их как метаданные записи.
Этот способ рабочий, но не самый удобный. Для нескольких полей и регулярной работы лучше использовать плагин с нормальной формой и понятными названиями полей.
Как добавить пользовательские поля через плагин
Если вам нужно не одно-два поля, а аккуратная форма для редакторов, проще использовать плагин для произвольных полей. Самый практичный путь — создать группу полей и привязать её к записям нужного типа: постам, страницам, товарам или отдельному типу записей.
Логика обычно такая:
- создаёте группу полей;
- задаёте типы полей: текст, число, дата, URL, изображение;
- указываете, где они должны отображаться в админке;
- сохраняете и заполняете значения у нужных материалов.
Это удобнее встроенного блока, потому что редактор видит понятные подписи, а вы контролируете формат данных. Например, поле Цена можно сделать числовым, а поле Ссылка на источник — URL. Тогда меньше шансов получить мусорные значения.
Как вывести значение пользовательского поля в шаблоне
Само по себе поле в админке ничего на сайте не покажет. Чтобы значение появилось в карточке записи, странице или товаре, его нужно вывести в теме. Для этого используют PHP-функции WordPress, которые читают метаданные текущего объекта.
Если вы работаете с обычной темой и хотите вывести, например, поле subtitle в шаблоне записи, можно использовать такой код:
<?php
$subtitle = get_post_meta( get_the_ID(), 'subtitle', true );
if ( $subtitle ) {
echo '<p class="post-subtitle">' . esc_html( $subtitle ) . '</p>';
}
?>Здесь get_post_meta() получает значение поля по имени, а esc_html() защищает вывод от лишнего HTML и случайных вставок. Если в поле хранится обычный текст, такой вариант подходит лучше всего.
Если значение должно быть ссылкой, используйте другую обработку:
<?php
$link = get_post_meta( get_the_ID(), 'source_url', true );
if ( $link ) {
echo '<a href="' . esc_url( $link ) . '" rel="nofollow noopener" target="_blank">Источник</a>';
}
?>Для URL важно применять esc_url(), а не просто вставлять значение в атрибут href. Это базовая защита от некорректных данных.
Куда вставлять код, чтобы не сломать сайт
Если вы редактируете тему вручную, код обычно добавляют в шаблон нужного типа записи: single.php, page.php, шаблон записи в дочерней теме или файл, который отвечает за вывод конкретного блока. Вносить такие правки в родительскую тему не стоит: при обновлении они пропадут.
Безопаснее использовать дочернюю тему или собственный мини-плагин, если логика должна жить независимо от оформления. Это особенно полезно, когда поля нужны не только для одной темы, а для сайта в целом.
Если вы не уверены, где именно выводится нужный фрагмент, сначала найдите шаблон, который отвечает за конкретный тип контента. Для записи и страницы это часто разные файлы или разные части шаблона.
Как работать с пользовательскими полями без кода
Не всегда нужно лезть в шаблоны. Если задача простая, можно использовать поля в редакторе и выводить их через блоки темы или через шорткоды, если они уже предусмотрены плагином. Такой подход подходит, когда вы не хотите менять PHP-файлы и достаточно стандартного отображения.
Но у этого варианта есть ограничение: без кода вы зависите от возможностей темы или плагина. Если нужно вывести значение в строго определённом месте, например под заголовком или в карточке товара, без правки шаблона обычно не обойтись.
Что важно проверить после настройки
После добавления поля и кода проверьте не только сам факт вывода, но и поведение на пустых значениях. Если поле не заполнено, на странице не должно появляться пустое место, лишний заголовок или сломанная разметка.
Проверьте три вещи:
- значение сохраняется в админке после обновления записи;
- на сайте выводится именно то поле, которое вы заполнили;
- текст и ссылки отображаются корректно на мобильных устройствах и в кэше, если он используется.
Если поле не видно на сайте, обычно проблема в одном из трёх мест: неверное имя мета-ключа, код вставлен не в тот шаблон или значение не проходит условие вывода. В таких случаях сначала проверьте точное имя поля в админке и только потом ищите ошибку в шаблоне.
Типичные ошибки при работе с custom fields
Чаще всего проблемы возникают не из-за самих пользовательских полей, а из-за того, как их выводят.
- Используют неправильный ключ поля. Имя в коде должно совпадать с тем, что сохранено в метаданных.
- Выводят значение без экранирования. Для текста используйте
esc_html(), для URL —esc_url(). - Правят родительскую тему. После обновления изменения исчезнут.
- Не проверяют пустое значение. В результате на странице появляются пустые блоки.
Если поля используются для контента, который видят посетители, лучше сразу договориться о формате: что хранится в поле, как оно называется и где именно выводится. Это экономит время, когда сайт начинает наполнять не разработчик, а редактор.
Какой способ выбрать в реальной работе
| Сценарий | Что выбрать | Почему |
|---|---|---|
| Нужно одно-два поля для редких материалов | Встроенные пользовательские поля | Не требует установки плагина |
| Поля нужны регулярно и их заполняют редакторы | Плагин с группами полей | Удобнее интерфейс и меньше ошибок ввода |
| Значение должно выводиться в конкретном месте шаблона | Поля + правка шаблона | Даёт точный контроль над отображением |
| Нужно хранить данные отдельно от оформления | Поля в дочерней теме или мини-плагине | Проще поддерживать при обновлениях |
Если задача сводится к хранению дополнительной информации у записей, страниц или товаров, custom fields закрывают её без тяжёлой разработки. Главное — не ограничиваться только заполнением полей в админке. Пользовательское поле становится полезным тогда, когда вы заранее продумали, как оно хранится, кто его заполняет и где именно показывается на сайте.