Добавить пользовательское поле на страницу архива?
Добавить поля на страницу архива?
Я использую плагин Advanced Custom Fields (но это не принципиально, так как можно использовать и нативные поля WordPress) и хочу добавить пользовательское поле на страницу архива пользовательского типа записи.
Проблема в том, что по умолчанию нет страницы архива, к которой можно прикрепить поле (хотя можно добавить к отдельным категориям, так как они есть в админке).
Создание пользовательского шаблона страницы = нет подсветки в меню
Одно из решений - создать пользовательский шаблон страницы для архивов. Но в этом случае вы теряете возможность подсвечивать его в навигационном меню при просмотре отдельной записи/категории, потому что эта новая страница не будет распознана как родительская.
Правильно ли я понимаю, что нет способа добавить поля на архив и сохранить подсветку в меню?

Используя плагин Advanced Custom Fields, вы можете назначить страницы настроек для вашего пользовательского типа записи следующим образом:
if( function_exists('acf_add_options_page') )
{
acf_add_options_page(array(
'page_title' => 'YOUR_PAGE_TILE Options',
'menu_title' => 'YOUR_MENU_TITLE Options',
'menu_slug' => 'options_YOUR_SLUG',
'capability' => 'edit_posts',
'parent_slug' => 'edit.php?post_type=YOUR_CUSTOM_POSTTYPE_SLUG',
'position' => false,
'icon_url' => 'dashicons-images-alt2',
'redirect' => false,
));
}
Таким образом, вы получаете страницу настроек, к которой позже можно привязать поля. Важно помнить, что все поля, назначенные этой странице настроек, не привязаны к вашему пользовательскому типу записи. Они работают как "обычные" поля настроек, но отображаются в разделе вашего пользовательского типа записи в меню админ-панели WordPress. Для создания страниц настроек, скорее всего, потребуется Pro-версия плагина или установка соответствующего дополнения.

Спасибо. Опция добавляется, но по какой-то причине не отображается на самой странице. Вы получаете значение как обычно с помощью the_field()
?

Я работаю с шаблонами Twig, но это должно работать, если сделать так:
$options= get_fields('option');
а затем получить значение через echo $options['YOUR_FIELDNAME']
;

На самом деле это the_field('option_name', 'option')
, если кому-то интересно.
