Как добавить поле ACF для архивной страницы записей?

У меня есть кастомный тип записей «Книги» (books) и шаблон архива archive-books.php. Мне нужно вывести в этом шаблоне произвольное описание (например, текст о разделе «Книги») над списком записей, используя ACF. Как это сделать?

Автор вопроса пожелал остаться инкогнито 31.03.25
Отвечает:
Руслан Шкарбан — автор статьи Руслан Шкарбан

Для начала познакомим читателей с контекстом. Advanced Custom Fields (ACF) — популярный плагин для CMS WordPress, который упрощает создание и управление дополнительными полями (текст, изображения, выбор и т.д.) для записей, страниц, глобальных настроек сайта (Options Page) и других элементов. Подробности доступны на официальном сайте.

Плагин позволяет настраивать отображение полей по условиям, например, для определённых типов записей, рубрик или меток.

Вкладка настроек в ACF

ACF также поддерживает «Страницу настроек» (Options Page) для хранения глобальных данных сайта, таких как контакты. Однако для архивных страниц, которых может быть множество, стандартной настройки в плагине нет. Эта задача часто обсуждается, например, на форуме ACF.

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

  1. Архивные страницы — это шаблоны темы, а не контент-сущности, поэтому ACF не может напрямую к ним подключиться.
  2. «Страница настроек» (Options Page) подходит для глобальных настроек, но неудобна если на ней будут отбражаться настройки для десятка архивных страниц.

Мы решим задачу, добавив «Страницу настроек» для определённого типа записей. Рассмотрим процесс на примере.

Решение

Добавим страницу опций для типа записи «тара» (package), как это было реализовано для клиента, производящего деревянную тару и упаковку. В файле functions.php добавляем следующий код:


// Добавление страницы настроек для кастомного типа записи
if (function_exists('acf_add_options_page')) {
    acf_add_options_sub_page(array(
        'page_title'  => 'Тара / Настройки',
        'menu_title'  => 'Настройки (тара)',
        'parent_slug' => 'edit.php?post_type=package',
    ));
}

Важно: Если вы добавляете страницы опций для нескольких типов записей, menu_title должен быть уникальным, так как он используется в URL.

После сохранения кода обновите админ-панель WordPress и проверьте, появилась ли вкладка настроек для типа записи «тара».

Вкладка настроек для типа записи

Если вкладка появилась, создайте необходимые поля в ACF. В настройках отображения полей выберите «Страница с опциями» и укажите вашу страницу (в нашем случае — «Тара»).

Настройка отображения полей в ACF

Для получения значения поля в шаблоне архива используйте стандартную функцию ACF get_field() с параметром 'options'. Пример:


$test = get_field('your_field_name', 'options');

Таким образом, мы добавили страницу настроек для архивных страниц определённого типа записи и подключили к ним кастомные поля.

Возникла проблема с сайтом на WordPress? Обращайтесь — решим

Возникла проблема с сайтом на WordPress? Обращайтесь — решим

Мы не только разрабатываем сайты на WordPress с нуля, но и занимаемся доработкой и поддержкой уже готовых сайтов. Если нужно внести изменения или исправить ошибки, обращайтесь, — поможем!
Подробнее об услуге
Есть вопрос из области дизайна, маркетинга или разработки? Отправьте его на почту и мы развернуто ответим на него на нашем сайте!

Остались вопросы? Готовы на них ответить!

Если у вас есть вопрос по маркетингу, разработке или дизайну, отправьте его через форму — мы подробно ответим на нашем сайте!

Нажимая на кнопку «Оставить вопрос», вы подтверждаете свое согласие на обработку пользовательских данных