Описание функции add_menu_page()
Функция add_menu_page() позволяет разработчикам добавлять новые страницы в меню административной панели WordPress. Это полезно для создания настроек плагина, пользовательских интерфейсов и других функций, которые требуют отдельной страницы в админке.
Функция принимает различные параметры, позволяющие настраивать заголовок, иконку и права доступа для страницы.
Параметры
$page_title
Тип: string
Обязательный: Да
Описание: Заголовок страницы, отображаемый в браузере и на странице меню.
Возможные значения:
$menu_title
Тип: string
Обязательный: Да
Описание: Название пункта меню, отображаемое в боковом меню админки.
Возможные значения:
$capability
Тип: string
Обязательный: Да
По умолчанию: manage_options
Описание: Минимальные права доступа, необходимые для просмотра страницы.
Возможные значения:
0: manage_options
1: edit_posts
2: publish_posts
3: read
4: edit_users
$menu_slug
Тип: string
Обязательный: Да
Описание: Уникальный идентификатор для меню, используемый в URL страницы.
Возможные значения:
$function
Тип: callable
Обязательный: Да
Описание: Функция, которая будет вызываться для отображения содержимого страницы.
Возможные значения:
$position
Тип: int
Обязательный: Нет
По умолчанию: null
Описание: Позиция элемента меню (опционально).
Возможные значения:
Возвращаемое значение
Тип: bool
Описание: Возвращает true при успешном добавлении страницы меню, false в противном случае.
Возможные значения:
• true — страница меню успешно добавлена
• false — произошла ошибка при добавлении страницы
Примеры использования
Добавление простой страницы меню с правами доступа ‘manage_options’
add_menu_page('Мои Настройки', 'Настройки', 'manage_options', 'my_custom_page', 'my_custom_page_function');
Страница будет доступна только администраторам
Добавление страницы меню с иконкой и позиционированием
add_menu_page('Мои Настройки', 'Настройки', 'manage_options', 'my_custom_page', 'my_custom_page_function', 'dashicons-admin-generic', 5);
Иконка будет отображаться слева от названия меню
Проверка успешности добавления страницы меню
$result = add_menu_page('Ошибка', 'Ошибка', 'manage_options', 'my_custom_page', 'my_custom_page_function');
if (!$result) {
echo 'Ошибка при добавлении страницы меню';
}
Предотвращает ошибки и сообщает пользователю
Добавление страницы меню в контексте плагина
add_action('admin_menu', 'my_plugin_menu');
function my_plugin_menu() {
add_menu_page('Мои Настройки', 'Настройки', 'manage_options', 'my_custom_page', 'my_custom_page_function');
}
Функция должна быть зарегистрирована через хук admin_menu
Безопасность
Валидация входных данных: Все параметры проходят валидацию внутри функции
Санитизация: Параметры автоматически очищаются WordPress
Рекомендации: Убедитесь, что функция, вызываемая для отображения содержимого, защищена от несанкционированного доступа
— Связанные функции
Добавляет подменю к существующему элементу меню.
Удаляет страницу меню из админки.
— Примечания
– Ограничения
Не работает с пользовательскими ролями, не имеющими указанных прав доступа
– Частые проблемы
- Ошибки при добавлении страницы из-за дублирующегося slugs
- Отсутствие прав доступа для текущего пользователя