add_options_page()
Добавляет дочернюю страницу (подменю) в меню админ-панели «Параметры» (Settings).
Функцию нужно вызывать во время события admin_menu.
Заметки
-
Это функция является оберткой для функции add_submenu_page(). Для которой указывается первый параметр
$parent_slugкак'options-general.php', а все остальные параметры просто передаются как есть. - В функции которая выводит контент страницы нужно отдельно проверять доступ пользователя (право).
Хуков нет.
Возвращает
string|false. hook_suffix вставленной страницы (пункта меню), то что возвращает функция add_submenu_page().
Использование
add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function );
- $page_title(строка) (обязательный)
Текст, который будет использован в теге title на странице, настроек.
Затем при генерации страница админки это значение можно получить с помощью функции get_admin_page_title().
- $menu_title(строка) (обязательный)
- Текст, который будет использован в качестве называния для пункта меню.
- $capability(строка) (обязательный)
- Название права доступа для пользователя, чтобы ему был показан этот пункт меню. Таблицу возможностей смотрите здесь. Этот параметр отвечает и за доступ к странице этого пункта меню.
- $menu_slug(строка) (обязательный)
Идентификатор меню. Нужно вписывать уникальную строку.
Не используйте волшебную константу
__FILE__и пробелы. Пробелы будут вырезаны при формировании URL!Можно, также указать путь от папки плагина до файла, который будет отвечать за страницу настроек плагина, пр.
my-plugin/options.php. В этом случае, следующий параметр$functionуказывать не обязательно.- $function(строка)
- Название функции, которая отвечает за код страницы этого пункта меню.
По умолчанию: ''
Примеры
#1 Базовое использование
Пример показывает, как добавить дополнительный пункт меню в раздел "Параметры" меню админ-панели.
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_options_page('My Options', 'My Plugin', 'manage_options', 'my-plugin', 'my_plugin_page');
}
function my_plugin_page(){
echo "Вывод для страницы настроек плагина";
}
#2 Добавление подменю в ООП
Этот пример показывает как добавить подменю в раздел Параметры в PHP Классах:
class options_page {
function __construct() {
add_action( 'admin_menu', [ $this, 'admin_menu' ] );
}
function admin_menu () {
add_options_page( 'Page Title','Circle Tree Login','manage_options','options_page_slug', [ $this, 'settings_page' ] );
}
function settings_page () {
echo 'Тут контент страницы настроек';
}
}
new options_page;
Список изменений
| С версии 1.5.0 | Введена. |
| С версии 5.3.0 | Added the $position parameter. |
Код add_options_page() add options page WP 7.1
function add_options_page( $page_title, $menu_title, $capability, $menu_slug, $callback = '', $position = null ) {
return add_submenu_page( 'options-general.php', $page_title, $menu_title, $capability, $menu_slug, $callback, $position );
}

