Функция добавляет вложенный элемент административного меню и страницу к нему. Если же нужно добавить пункт меню верхнего уровня, то вам пригодится функция add_menu_page().
Читайте отдельный урок про создание страниц настроек в админке WordPress.
Возвращает хук созданной страницы, который можно использовать в других функциях, подробнее про то, как использовать этот хук, читайте в этом примере.
Функция должна быть использована внутри одного из следующих хуков:
admin_menunetwork_admin_menu – при создании страницы субменю WordPress Мультсайт.Если возникает ошибка «Извините, вам не разрешено просматривать эту страницу» («You do not have sufficient permissions to access this page») плюс страница отображается в самом низу админ-меню, то как раз это означает, что вы подключили функцию на неправильный хук, вероятнее всего слишком рано.
add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $function = '', $position = null
null, чтобы создать страницу, но не добавлять ссылку в меню.
Вот кстати ярлыки родительских элементов меню, доступные по умолчанию:
index.php — Консоль (Dashboard),edit.php — Посты (Posts),upload.php — Медиафайлы (Media),link-manager.php — Ссылки (Links),edit.php?post_type=page — Страницы (Pages),edit-comments.php — Комментарии (Comments),edit.php?post_type=your_post_type — Произвольные типы записей,themes.php — Внешний вид (Appearance),plugins.php — Плагины (Plugins),users.php — Пользователи (Users),tools.php — Инструменты (Tools),options-general.php — Настройки (Settings),settings.php — Настройки (Settings) сети сайтов в режиме WordPress Multisite.true_function, либо в виде массива, если вы хотите использовать метод класса array( $this, 'true_function' )В WordPress есть набор функций для добавление пунктов меню в админ-панеле, все они работают на основе функции add_submenu_page(). Например два сниппета кода абсолютно идентичны:
add_submenu_page( 'options-general.php', 'Мишин плагин', 'Настройки Мишиного плагина', 'manage_options', 'mishin-plugin', 'mishin_plugin_callback' );
Полностью такой же код:
add_options_page( 'Мишин плагин', 'Настройки Мишиного плагина', 'manage_options', 'mishin-plugin', 'mishin_plugin_callback' );
| Значение параметра $parent_slug | Альтернативная функция |
|---|---|
add_submenu_page( 'options-general.php' ... | add_options_page() |
add_submenu_page( 'index.php' ... | add_dashboard_page() |
add_submenu_page( 'edit.php' ... | add_posts_page() |
add_submenu_page( 'upload.php' ... | add_media_page() |
add_submenu_page( 'edit.php?post_type=page' ... | add_pages_page() |
add_submenu_page( 'edit-comments.php' ... | add_comments_page() |
add_submenu_page( 'themes.php' ... | add_theme_page() |
add_submenu_page( 'plugins.php' ... | add_plugins_page() |
add_submenu_page( 'users.php' ... | add_users_page() |
add_submenu_page( 'tools.php' ... | add_management_page() |
В документации функции add_menu_page() мы добавляли родительский элемент меню «Слайдер», давайте сейчас добавим для него дочерний.
add_action( 'admin_menu', 'true_add_submenus' ); function true_add_submenus() { add_menu_page( 'Настройки слайдера', 'Слайдер', 'manage_options', 'true_slider', 'true_slider_page_callback', 'dashicons-images-alt2' ); // первый элемент субменю дублирует родительский элемент add_submenu_page( 'true_slider', 'Настройки слайдера', 'Слайдер', 'manage_options', 'true_slider', 'true_slider_page_callback' ); add_submenu_page( 'true_slider', 'Доп. настройки слайдера', 'Доп. настройки', 'manage_options', 'true_slider_2', 'true_slider_page_callback_2' ); } function true_slider_page_callback(){ echo '<div class="wrap"><h2>' . get_admin_page_title() . '</h2></div>'; // можем использовать функцию get_admin_page_title(), чтобы динамически вывести "Настройки слайдера" }
Если вдруг не знаете, куда вставлять код.
В результате получаем:

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.