Перейти к основному содержанию
Санкт-Петербург

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

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

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

Руслан Шкарбан
разработка wordpress

Для начала познакомим читателей с контекстом. 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');

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

[commercial_block id="77" title="Возникла проблема с сайтом на WordPress? Обращайтесь — решим" text="Мы не только разрабатываем сайты на WordPress с нуля, но и занимаемся доработкой и поддержкой уже готовых сайтов. Если нужно внести изменения или исправить ошибки, обращайтесь, — поможем!"]