- Описание функции
- Примеры использования
- Добавление подраздела на страницу настроек
- Отображение содержимого подраздела
- Установка прав доступа
- Изменение порядка отображения
- Уникальный идентификатор подраздела
- Вопросы и ответы
- Как добавить подменю в раздел настроек?
- Как указать права доступа для отображения подменю?
- Как задать уникальный идентификатор для подменю?
- Как указать функцию для вывода содержимого страницы подменю?
- Как изменить порядок отображения подменю в меню настроек?
- Как получить хук страницы подменю?
- Как проверить, имеет ли пользователь необходимые права доступа для отображения подменю?
- Как удалить подменю из меню настроек?
- Как изменить заголовок страницы подменю?
- Связанные элементы
Описание функции
Функция add_options_page() добавляет подменю в основное меню «Настройки» в административной панели WordPress.
Она позволяет разработчикам добавлять свои собственные страницы настроек в административную панель WordPress, чтобы пользователи могли настраивать параметры и функциональность своих сайтов.
Использование
add_options_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', int $position = null ): string|false Функция add_options_page() принимает следующие параметры:
$page_title(обязательный) — текст, который будет отображаться в тегах <title> на странице, когда выбрано подменю.$menu_title(обязательный) — текст, который будет использоваться для отображения в меню.$capability(обязательный) — требуемая возможность для отображения этого меню пользователю.$menu_slug(обязательный) — уникальное имя для ссылки на это меню.$callback(необязательный) — функция, которая будет вызвана для вывода содержимого на этой странице. По умолчанию: пустая строка.$position(необязательный) — позиция в порядке меню, в которой этот элемент должен появиться. По умолчанию: null.
Функция возвращает хук страницы, или false, если у пользователя нет необходимых возможностей.
<?php
/**
* Добавляет страницу настроек в меню "Настройки".
*
* @param string $page_title Текст для отображения в тегах <title> на странице.
* @param string $menu_title Текст для отображения в меню.
* @param string $capability Требуемая возможность для отображения меню.
* @param string $menu_slug Уникальное имя ссылки на меню.
* @param callable $callback Функция для вывода содержимого страницы (необязательно).
* @param int $position Позиция в порядке меню (необязательно).
* @return string|false Хук страницы или false, если у пользователя нет необходимых возможностей.
*/
add_options_page( 'Моя страница настроек', 'Настройки', 'manage_options', 'my-settings', 'my_settings_page' );
/**
* Функция для вывода содержимого страницы настроек.
*/
function my_settings_page() {
// Вывод содержимого страницы настроек
}
?> Примеры использования
Добавление подраздела на страницу настроек
/**
* Добавляет подраздел в главное меню "Настройки".
*/
function add_my_submenu_page() {
add_options_page(
'Моя страница настроек', // Заголовок страницы
'Мой подраздел', // Текст для меню
'manage_options', // Требуемая возможность
'my-submenu', // Уникальный идентификатор подраздела
'my_submenu_callback' // Функция для вывода содержимого страницы
);
}
add_action( 'admin_menu', 'add_my_submenu_page' );
Отображение содержимого подраздела
/**
* Функция для вывода содержимого страницы подраздела.
*/
function my_submenu_callback() {
echo '<div class="wrap">';
echo '<h1>Моя страница настроек</h1>';
echo '<p>Это содержимое моего подраздела.</p>';
echo '</div>';
}
Установка прав доступа
/**
* Добавляет подраздел в главное меню "Настройки" только для пользователей с возможностью "manage_options".
*/
function add_my_submenu_page() {
add_options_page(
'Моя страница настроек', // Заголовок страницы
'Мой подраздел', // Текст для меню
'manage_options', // Требуемая возможность
'my-submenu', // Уникальный идентификатор подраздела
'my_submenu_callback' // Функция для вывода содержимого страницы
);
}
add_action( 'admin_menu', 'add_my_submenu_page' );
Изменение порядка отображения
/**
* Добавляет подраздел в главное меню "Настройки" и устанавливает его позицию вторым.
*/
function add_my_submenu_page() {
add_options_page(
'Моя страница настроек', // Заголовок страницы
'Мой подраздел', // Текст для меню
'manage_options', // Требуемая возможность
'my-submenu', // Уникальный идентификатор подраздела
'my_submenu_callback', // Функция для вывода содержимого страницы
2 // Позиция в меню
);
}
add_action( 'admin_menu', 'add_my_submenu_page' );
Уникальный идентификатор подраздела
/**
* Добавляет подраздел в главное меню "Настройки" с уникальным идентификатором "my-submenu".
*/
function add_my_submenu_page() {
add_options_page(
'Моя страница настроек', // Заголовок страницы
'Мой подраздел', // Текст для меню
'manage_options', // Требуемая возможность
'my-submenu', // Уникальный идентификатор подраздела
'my_submenu_callback' // Функция для вывода содержимого страницы
);
}
add_action( 'admin_menu', 'add_my_submenu_page' );
Вопросы и ответы
Как добавить подменю в раздел настроек?
Для добавления подменю в раздел настроек в WordPress используется функция add_options_page(). Она позволяет создать новый пункт меню в разделе «Настройки» и добавить подменю с собственным содержимым.
Пример использования функции add_options_page():
add_action( 'admin_menu', 'my_plugin_menu' );
function my_plugin_menu() {
add_options_page( 'My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin', 'my_plugin_page' );
}
function my_plugin_page() {
// Содержимое страницы настроек плагина
}
В данном примере мы создаем пункт меню с названием «My Plugin» и добавляем подменю в раздел «Настройки». Функция add_options_page() принимает несколько параметров, включая заголовок страницы, название меню, необходимые права доступа и функцию, которая будет выводить содержимое страницы настроек.
Как указать права доступа для отображения подменю?
Для того чтобы указать права доступа, необходимые для отображения подменю, используется параметр $capability функции add_options_page(). Этот параметр определяет, какие пользователи смогут видеть и использовать подменю.
Пример использования параметра $capability:
add_action( 'admin_menu', 'my_plugin_menu' );
function my_plugin_menu() {
add_options_page( 'My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin', 'my_plugin_page' );
}
В данном примере мы указываем, что для отображения подменю пользователю должны быть права доступа manage_options. Это означает, что только администраторы сайта смогут видеть и использовать подменю.
Как задать уникальный идентификатор для подменю?
Для задания уникального идентификатора для подменю используется параметр $menu_slug функции add_options_page(). Этот параметр должен быть уникальным для каждого подменю, чтобы WordPress мог правильно идентифицировать его.
Пример использования параметра $menu_slug:
add_action( 'admin_menu', 'my_plugin_menu' );
function my_plugin_menu() {
add_options_page( 'My Plugin Settings', 'My Plugin', 'manage_options', 'my-plugin', 'my_plugin_page' );
}
В данном примере мы задаем уникальный идентификатор для подменю — my-plugin. Этот идентификатор будет использоваться для ссылок на подменю и его идентификации в коде.
Как указать функцию для вывода содержимого страницы подменю?
Для указания функции, которая будет выводить содержимое страницы подменю, необходимо передать ее в качестве аргумента $callback при вызове функции add_options_page().
Пример кода:
function my_custom_page_content() {
echo '<h2>Welcome to My Custom Page!</h2>';
}
add_options_page( 'My Custom Page', 'Custom Page', 'manage_options', 'my-custom-page', 'my_custom_page_content' );
Как изменить порядок отображения подменю в меню настроек?
Для изменения порядка отображения подменю в меню настроек необходимо передать соответствующее значение в аргументе $position при вызове функции add_options_page().
Пример кода:
add_options_page( 'My Custom Page', 'Custom Page', 'manage_options', 'my-custom-page', 'my_custom_page_content', 10 );
Как получить хук страницы подменю?
Для получения хука страницы подменю можно использовать функцию add_action() и указать соответствующий хук в качестве первого аргумента, а функцию, которую необходимо выполнить, в качестве второго аргумента.
Пример кода:
function my_custom_page_hook() {
// Ваш код
}
add_action( 'admin_menu', 'my_custom_page_hook' );
Как проверить, имеет ли пользователь необходимые права доступа для отображения подменю?
Для проверки, имеет ли пользователь необходимые права доступа для отображения подменю, можно использовать функцию current_user_can(). Она принимает один аргумент — строку, представляющую необходимую для доступа к подменю роль или способность.
if ( current_user_can( 'manage_options' ) ) {
// Пользователь имеет необходимые права доступа
} else {
// Пользователь не имеет необходимых прав доступа
}
Как удалить подменю из меню настроек?
Для удаления подменю из меню настроек можно использовать функцию remove_submenu_page(). Она принимает два аргумента — строку, представляющую родительское меню, и строку, представляющую подменю, которое нужно удалить.
remove_submenu_page( 'options-general.php', 'my-submenu' );
Как изменить заголовок страницы подменю?
Для изменения заголовка страницы подменю можно использовать хук admin_title. Он позволяет изменить заголовок страницы перед его выводом.
add_filter( 'admin_title', 'my_admin_title', 10, 2 );
function my_admin_title( $admin_title, $title ) {
if ( $title === 'My Submenu' ) {
$admin_title = 'New Submenu Title';
}
return $admin_title;
}
Функция
add_options_page()позволяет добавить подменю в главное меню настроек WordPress. Она принимает несколько параметров, включая заголовок страницы, текст для меню, необходимые права доступа и функцию для вывода содержимого страницы. Функция возвращает хук страницы или false, если у пользователя нет необходимых прав доступа.
Для проверки прав доступа пользователя к подменю можно использовать функциюcurrent_user_can(), а для удаления подменю из меню настроек — функциюremove_submenu_page(). Заголовок страницы подменю можно изменить с помощью хукаadmin_title.
Связанные элементы
- Функция
add_menu_page(): добавляет новый пункт меню в административной панели WordPress. - Функция
add_submenu_page(): добавляет подпункт меню в административной панели WordPress. - Функция
register_setting(): регистрирует новую настройку, которая будет использоваться на странице опций. - Функция
add_action(): добавляет действие к указанному хуку. - Функция
do_action(): выполняет все действия, привязанные к указанному хуку. - Хук
admin_menu: вызывается при создании меню административной панели. - Хук
admin_init: вызывается при инициализации административной панели. - Хук
admin_enqueue_scripts: вызывается при загрузке скриптов и стилей в административной панели. - Класс
WP_Screen: предоставляет информацию о текущем экране административной панели.