acf_add_options_page()

Обзор

Эта функция добавляет страницу опций в панель управления «wp-admin».

Все данные, сохраненные на странице опций не привязаны к какому-либо конкретному посту или странице, но сохраняются в таблице wp_options.

Требования

  • ACF версии 5.0.0 или выше
  • Эта функция должна быть вызвана до экшена admin_menu (приоритет 99), поскольку в этот момент страницы настроек добавляются в WordPress.

Параметры

acf_add_options_page( $args );
  • $args (смешанный) Заголовка страницы настроек или массив параметров. Если не заполнено, то будут использоваться настройки по-умолчанию.
$args = array(
	
	/* (строка) Заголовок для страницы настроек. Обязательно. */
	'page_title' => 'Options',
	
	/* (строка) Заголов для боковой панели wp-admin. По-умолчанию такой же, как page_title */
	'menu_title' => '',
	
	/* (строка) URL слаг для идентификации страницы настроек. 
	По-умолчанию преобразует menu_title в url */
	'menu_slug' => '',
	
	/* (строка) Какому типу пользователей предоставить возможность редактирования. По-умолчанию edit_posts.
	'capability' => 'edit_posts',
	
	/* (число|строка) Позиция в меню. 
	Внимание: Если в двух пунктах меню используется одна и та же позиция, один из элементов может быть перезаписан так, что будет отображаться только один элемент!
	Риск конфликта может быть уменьшен за счет использования десятичных чисел вместо целых значений, например. '63 .3 'вместо 63 (должны быть кавычки).
	По-умолчанию помещается в самый низ. */
	'position' => false,
	
	/* (строка) slug родительской страниц WP admin page. Если установлено, то текущая страница станет дочерней по отношению к родительской. */
	'parent_slug' => '',
	
	/* (строка) Иконка для пункта меню. По-умолчанию стандартная иконка WordPress для меню.
	Больше иконок тут: https://developer.wordpress.org/resource/dashicons/ */
	'icon_url' => false,
	
	/* (логический) Только для родительских страниц.
	Если установлено значение true, то эта страница будет перенаправлять на первую дочернюю страницу (если существует дочерняя страница). 
	Если установлено значение false, то эта страница появится рядом с дочерними страницами. По умолчанию true */
	'redirect' => true,
	
	/* (число|строка) '$post_id' для сохранения/получения данных. Может быть установлено цифрами для post ID (123), или строкой ('user_2'). 
	По-умолчанию 'options'. Добавлено в v5.2.7 */
	'post_id' => 'options',
	
	/* (логический)  Загружать ли параметры (значения, сохраненные для этой страницы параметров), когда WordPress запускается. 
	По-умолчанию false. Добавлено в v5.2.8. */
	'autoload' => false,
	
	/* (строка) Текст кнопки обновить. Добавлено в v5.3.7. */
	'update_button'		=> __('Update', 'acf'),
	
	/* (строка) Сообщение, появляющееся после сохранения настроек. Добавлено в v5.6.0. */
	'updated_message'	=> __("Options Updated", 'acf'),
			
);

Возвращает

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

Использование

Функция должна быть объявлена в пределах файла functions.php.

Базовая страница с опциями

Пример показывает, как создать базовую страницу настроек.

f( function_exists('acf_add_options_page') ) {

	acf_add_options_page();
	
}

Простая страница с опциями

Пример показывает, как создать 2 простых страницы настроек.

if( function_exists('acf_add_options_page') ) {

	acf_add_options_page('Theme Settings');
	acf_add_options_page('More Theme Settings');

}

Кастомизация страницы с опциями

Пример показывает, как создать и кастомизировать страницу настроек.

if( function_exists('acf_add_options_page') ) {
 
	$option_page = acf_add_options_page(array(
		'page_title' 	=> 'Theme General Settings',
		'menu_title' 	=> 'Theme Settings',
		'menu_slug' 	=> 'theme-general-settings',
		'capability' 	=> 'edit_posts',
		'redirect' 	=> false
	));
 
}

Локализация

Используйте функцию WP __() для перевода параметров страницы настроек.

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

Чтобы быть уверенным в загрузке локализации, запустите функцию acf_add_options_page() для экшена «init» или «acf / init».

dd_action('acf/init', 'my_acf_init');

function my_acf_init() {
	
	if( function_exists('acf_add_options_page') ) {
		
		$option_page = acf_add_options_page(array(
			'page_title' 	=> __('Theme General Settings', 'my_text_domain'),
			'menu_title' 	=> __('Theme Settings', 'my_text_domain'),
			'menu_slug' 	=> 'theme-general-settings',
		));
		
	}
	
}

Совместимость

Параметры, упомянутые выше, немного изменились в новых версиях (ACF v4). В списке показаны параметры, которые изменились.

Старый параметрНовый параметр
titlepage_title
menumenu_title
slugmenu_slug
parentparent_slug

Похожие