add_options_page

Добавляет дочернюю страницу (подменю) в меню админ-панели «Параметры» (Settings).

Функцию нужно вызывать во время события admin_menu.

Хуков нет.

Возвращает

Строку. hook_suffix вставленной страницы (пункта меню), то что возвращает функция add_submenu_page().

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

add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function );
$page_title(строка) (обязательный)
Текст, который будет использован в теге title на странице, настроек.
$menu_title(строка) (обязательный)
Текст, который будет использован в качестве называния для пункта меню.
$capability(строка) (обязательный)
Название права доступа для пользователя, чтобы ему был показан этот пункт меню. Таблицу возможностей смотрите здесь. Этот параметр отвечает и за доступ к странице этого пункта меню.
$menu_slug(строка) (обязательный)
Идентификатор меню. Нужно вписывать уникальную строку, пробелы не допускаются.Можно, также указать путь от папки плагина до файла, который будет отвечать за страницу настроек плагина, пр. my-plugin/options.php. В этом случае, следующий параметр указывать не обязательно.
$function(строка)
Название функции, которая отвечает за код страницы этого пункта меню.
По умолчанию: ”

Примеры

#1 Базовое использование

Пример показывает, как добавить дополнительный пункт меню в раздел “Параметры” меню админ-панели.

add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
	add_options_page('My Options', 'My Plugin', 'manage_options', 'my-plugin.php', 'my_plugin_page');
}

function my_plugin_page(){
	echo "Вывод для страницы настроек плагина";
}

#2 Добавление подменю в ООП

Этот пример показывает как добавить подменю в раздел Параметры в PHP Классах:

class options_page {
	function __construct() {
		add_action( 'admin_menu', array( $this, 'admin_menu' ) );
	}
	function admin_menu () {
		add_options_page( 'Page Title','Circle Tree Login','manage_options','options_page_slug', array( $this, 'settings_page' ) );
	}
	function  settings_page () {
		echo 'Тут контент страницы настроек';
	}
}
new options_page;

Заметки

  1. Это функция является оберткой для функции add_submenu_page(). Для которой указывается первый параметр $parent_slug как ‘options-general.php’, а все остальные параметры просто передаются как есть.

  2. Функция которая выводит контент для страницы пункта меню должна проверять доступ пользователя (возможность) отдельно.

  3. Если в параметре $menu_slug не используйте волшебную константу __FILE__ и пробелы.

Код из


wp-admin/includes/plugin.php

WP 4.7.2

<?php
function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function = '' ) {
	return add_submenu_page( 'options-general.php', $page_title, $menu_title, $capability, $menu_slug, $function );
}