Позволяет удалить дочерний пункт административного меню WordPress, например «Обновления» из «Консоль» или «Редактор тем» из «Внешний вид».
В случае, если вы хотите удалить целиком весь родительский пункт меню (Консоль, Внешний вид и т.д), то воспользуйтесь функцией remove_menu_page().
Функция возвращает массив удалённого пункта меню в случае успеха и false
– если элемента субменю, который мы пытаемся удалить, не существует.
remove_submenu_page( $menu_slug, $submenu_slug )
Параметры
- $menu_slug
- (строка) Ярлык родительского элемента, подменю из которого хотим удалять.
- $submenu_slug
- (строка) Ярлык элемента подменю, который хотим удалить.
Узнать значения этих двух параметров, на мой взгляд, легче всего, проинспектировав нужный пункт подменю в инспекторе браузера (Правая кнопка мыши – Проинспектировать элемент). Но список дочерних элементов меню вы можете найти ниже.
Полный список стандартных подпунктов меню
Помимо этих подпунктов меню у нас могут быть ещё подпункты из меню суперадминистратора в сети мультисайт.
Примеры
В качестве примера можем удалить подпункт меню Консоль – Обновления. Если вы взгляните на таблицу выше, мы поймёте, что в качестве параметра $menu_slug
функции нам нужно воспользоваться значением index.php
, а в качестве параметра $submenu_slug
– update-core.php
.
Ещё один важный момент, про который нужно знать, это то, что функцию не нужно использовать напрямую, а вешать на на хук admin_menu
(для сети WordPress Мультисайт – network_admin_menu
). В некоторых ситуациях кстати нужно увеличивать приоритет хука, а в некоторых и вовсе использовать admin_init
. Не понимаете, о чём я говорю? Смотрите видеоурок по хукам.
Вы уже заждались готовый код:
add_action( 'admin_menu', 'true_updates_submenu' ); function true_updates_submenu(){ remove_submenu_page( 'index.php', 'update-core.php' ); }
Вставляем код и получаем результат:
Помните, я говорил, что функция remove_submenu_page()
ещё и что-то возвращает? Давайте слегка видоизменю и прокомментирую предыдущий пример.
add_action( 'admin_menu', 'true_updates_submenu' ); function true_updates_submenu(){ $removed_submenu = remove_submenu_page( 'index.php', 'update-core.php' ); /* Array ( [0] => Обновления 2 [1] => update_core [2] => update-core.php ) */ // $removed_submenu[0] Название удалённого подпункта меню // (напишите в комментах, почему на конце цифра 2) // $removed_submenu[1] Права, которые должны быть у пользователя для доступа к странице // $removed_submenu[2] Ярлык }