Как добавить собственные поля в WordPress и вывести их на сайте

Собственные поля в WordPress нужны, когда к записи или странице надо привязать дополнительную информацию: дату события, цену, автора материала, ссылку, короткую заметку, координаты, ID внешнего сервиса. Это штатная возможность WordPress, и для простых задач она часто удобнее, чем отдельный плагин с тяжёлой админкой.

Схема простая: сначала добавляете поле в запись или страницу, затем сохраняете значение, после этого выводите его в шаблоне темы или прямо в контенте через блоки/шорткоды, если так удобнее. Ниже разберём оба этапа без лишней теории.

Что такое собственные поля в WordPress

Собственное поле — это пара «ключ и значение», которая хранится вместе с записью в таблице метаданных WordPress. Ключ — это имя поля, например price или event_date. Значение — то, что вы вводите для конкретной записи: 1500, 2026-10-01, Москва.

Обычно собственные поля используют для данных, которые не должны быть частью основного текста, но должны храниться рядом с ним и выводиться в нужном месте шаблона. Если информация повторяется у многих записей, это как раз хороший кандидат для метаполя.

Как добавить собственное поле в записи или странице

В современном редакторе WordPress блок «Произвольные поля» может быть скрыт по умолчанию. Его нужно включить в настройках экрана редактора. Это работает в актуальных версиях WordPress, хотя интерфейс может немного отличаться в зависимости от версии и используемого редактора.

Включите блок произвольных полей

Откройте нужную запись или страницу в админке. Затем в правом верхнем углу нажмите меню с тремя точками и найдите пункт, связанный с настройками панели или предпочтениями. В классическом редакторе это обычно делается через «Настройки экрана». В редакторе блоков Gutenberg нужно включить панель «Произвольные поля» в разделе дополнительных параметров.

После включения внизу редактора появится блок, где можно добавить новое поле. Если вы не видите его сразу, прокрутите страницу вниз: в некоторых темах и конфигурациях он расположен ниже основного контента.

Создайте ключ и значение

Добавление поля выглядит так:

  • введите имя поля, например event_date;
  • укажите значение, например 2026-10-01;
  • сохраните запись или обновите страницу.

Лучше сразу придерживаться понятных имён без пробелов и кириллицы. На практике удобнее использовать латиницу в нижнем регистре и подчёркивания или дефисы, если это соответствует вашей логике проекта. Так проще работать с полем в шаблоне и меньше шансов ошибиться в названии.

Если одно и то же поле нужно для многих записей, имя должно быть одинаковым везде. Например, для карточек мероприятий можно использовать event_date, event_place, ticket_url. Тогда шаблон будет читать эти значения одинаково для всех материалов.

Как вывести собственное поле в шаблоне темы

Если вам нужно показать значение на сайте, одного заполнения поля недостаточно. Его надо вывести в шаблоне темы. Для этого обычно правят файл нужного шаблона: single.php, page.php, шаблон записи в блок-теме или отдельный шаблон части.

Перед изменением файлов темы сделайте резервную копию. Если тема обновляется, прямое редактирование её файлов может быть перезаписано. Для постоянных правок лучше использовать дочернюю тему.

Самый простой способ получить значение поля — функция get_post_meta(). Она возвращает сохранённое значение по ключу.

Пример вывода в шаблоне записи:

<?php
$event_date = get_post_meta( get_the_ID(), 'event_date', true );

if ( ! empty( $event_date ) ) {
    echo '<p class="post-meta post-meta--event-date">';
    echo esc_html( $event_date );
    echo '</p>';
}
?>

Здесь важно несколько моментов. Параметр true говорит WordPress вернуть одно значение, а не массив. Функция esc_html() нужна, чтобы безопасно вывести текст на странице. Если поле содержит URL, используйте esc_url().

Вывод ссылки из собственного поля

Если в поле хранится ссылка, вывод лучше делать как кликабельный элемент:

<?php
$ticket_url = get_post_meta( get_the_ID(), 'ticket_url', true );

if ( ! empty( $ticket_url ) ) {
    echo '<p class="post-meta post-meta--ticket">';
    echo '<a href="' . esc_url( $ticket_url ) . '" rel="nofollow noopener">Купить билет</a>';
    echo '</p>';
}
?>

Атрибут rel="nofollow noopener" уместен не всегда, но для внешних ссылок часто используется осознанно. Если ссылка ведёт на ваш же сайт, nofollow обычно не нужен.

Если нужно вывести поле в контенте без правки шаблона

Иногда удобнее не лезть в PHP-файлы, а вывести значение через шорткод. Это полезно, если вы хотите вставлять поле прямо в текст записи или в блок «Произвольный HTML».

Ниже пример простого шорткода, который выводит значение собственного поля текущей записи:

<?php
function wpcource_meta_shortcode( $atts ) {
    $atts = shortcode_atts(
        array(
            'key' => '',
        ),
        $atts,
        'post_meta'
    );

    if ( empty( $atts['key'] ) ) {
        return '';
    }

    $value = get_post_meta( get_the_ID(), $atts['key'], true );

    if ( '' === $value ) {
        return '';
    }

    return esc_html( $value );
}
add_shortcode( 'post_meta', 'wpcource_meta_shortcode' );

После этого в записи можно вставить [post_meta key="event_date"]. Такой вариант удобен, когда шаблон менять не хочется, но нужно показать данные в конкретном месте контента.

Как работать с собственными полями безопасно и без путаницы

У собственных полей есть несколько практических ограничений, о которых часто забывают. Если их учитывать сразу, потом не придётся переделывать шаблон.

  • Не храните в поле слишком сложную структуру, если вам нужен только один текстовый параметр. Для простых данных достаточно обычного значения.
  • Не используйте одинаковые ключи для разных смыслов. Например, date слишком общий ключ, лучше event_date или publish_date_extra.
  • Проверяйте, что поле заполнено, прежде чем выводить его на странице. Иначе можно получить пустой блок в шаблоне.
  • Всегда экранируйте вывод: текст через esc_html(), URL через esc_url().

Если поле должно быть обязательным, WordPress сам по себе это не контролирует. В таком случае проверку обычно добавляют либо в шаблон, либо в код сохранения метаданных, либо используют более строгую форму ввода через плагин или кастомный метабокс.

Как проверить, что всё работает

После сохранения записи откройте её на сайте и проверьте три вещи: значение действительно сохранилось в админке, шаблон подхватил правильный ключ, на странице появился ожидаемый текст или ссылка. Если поле не выводится, чаще всего проблема в одном из этих мест:

  • ключ в шаблоне не совпадает с ключом в админке;
  • поле не было сохранено для этой записи;
  • код вставлен не в тот шаблон;
  • тема переопределяет вывод записи в другом файле;
  • значение пустое, а условие скрывает блок.

Если вы правили файл темы вручную, после обновления страницы проверьте исходный код или сам блок на фронтенде. Это самый быстрый способ понять, сработал ли get_post_meta() и не мешает ли выводу верстка темы.

Когда лучше использовать плагин, а когда достаточно кода

Если у вас одно-два поля и понятный сценарий вывода, штатных возможностей WordPress обычно хватает. Это самый лёгкий путь: меньше зависимостей, меньше лишнего интерфейса, проще поддержка.

Плагин имеет смысл, когда нужно много полей, сложные типы данных, повторяющиеся группы полей, условия показа и удобная форма редактирования для контент-менеджеров. Но для базовой задачи — хранить и вывести дополнительное значение у записи или страницы — собственные поля WordPress решают вопрос без лишней нагрузки.

Если вы работаете с темой, которую планируете развивать дальше, лучше сразу вынести вывод метаполей в дочернюю тему или в небольшой функциональный плагин. Тогда структура сайта останется управляемой, а данные не потеряются при обновлении темы.

Как отключить Gutenberg и вернуть классический редактор в WordPress
23.10.2026
Как создать и подключить дочернюю тему WordPress
28.10.2026
Как удалить архивы дат в WordPress и не сломать структуру сайта
14.10.2026
Как добавить собственные поля в WordPress и вывести их на сайте
28.10.2026
Как отключить комментарии в WordPress полностью или только на отдельных типах записей
17.10.2026

Обучение разработке на WordPress, как создавать темы, плагины. Подробнее об обучении.