Купить

Регистрация нескольких страниц с опциями

Обзор

Несколько страниц с опциями можно зарегистрировать, используя функции acf_add_options_page() и acf_add_options_sub_page(). Обе функции могут использоваться в файле functions.php.

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

Обратите внимание, что для каждой страницы опций все значения сохраняются и загружаются с помощью «option» в качестве $post_id. Это означает, что значения не привязываются к конкретным страницам опций. В связи с этим для всех полей требуются уникальные имена, чтобы избежать потери данных.

Требования

  • ACF версии 5.0.0 или выше
  • Активная функция «Страница с опциями». Доступно в ACF PRO (платная версия)

Примеры

Базовый

В этом примере показано, как создать страницу с опциями по умолчанию с 3 дочерними страницами. По умолчанию страница родительских опций будет перенаправляться на первую дочернюю страницу, однако этот параметр можно настроить (см. Следующий пример).

if( function_exists('acf_add_options_page') ) {
	
	acf_add_options_page();
	
	acf_add_options_sub_page('Основные');
	acf_add_options_sub_page('Шапка');
	acf_add_options_sub_page('Подвал');
	
}

Продвинутый

В этом примере показано, как создать новую родительскую страницу с опциями и 2 дочерние страницы для нее. Обратите внимание на использование redirect => false, которое позволяет родительской странице иметь свою собственную страницу вместо перенаправления на первую дочернюю страницу.

if( function_exists('acf_add_options_page') ) {
	
	acf_add_options_page(array(
		'page_title' 	=> 'Основные настройки',
		'menu_title'	=> 'Настройки темы',
		'menu_slug' 	=> 'theme-general-settings',
		'capability'	=> 'edit_posts',
		'redirect'		=> false
	));
	
	acf_add_options_sub_page(array(
		'page_title' 	=> 'Настройки шапки',
		'menu_title'	=> 'Шапка',
		'parent_slug'	=> 'theme-general-settings',
	));
	
	acf_add_options_sub_page(array(
		'page_title' 	=> 'Настройки подвала',
		'menu_title'	=> 'Подвал',
		'parent_slug'	=> 'theme-general-settings',
	));
	
}

Похожие