Удаление пунктов меню в админке WordPress

Вопрос – зачем?

Ну предположим, что вы делаете сайт для кого-то и не хотите чтобы например пункт «Ссылки» мозолил ему глаза.

меню в админке wordpress

Конечно, полного отключения функционала ссылок таким образом мы не добьёмся, да и не нужно это нам, т.е. хоть элемент меню и пропадёт, страница ссылок по-прежнему будет доступна по адресу: wp-admin/link-manager.php

remove_menu_page()

Удаляет родительский элемент меню и все вложенные в него.

<?php remove_menu_page( $menu_slug ) ?>

Функция возвращает true, если меню удалено и false, если не найдено.

Как узнать $menu_slug? Очень просто – по ссылке, тем не менее я перечислю здесь все стандартные.

  • Консоль – index.php
  • Записи – edit.php
  • Медиафайлы – upload.php
  • Ссылки – link-manager.php
  • Страницы – edit.php?post_type=page
  • Комментарии – edit-comments.php
  • Внешний вид – themes.php
  • Плагины – plugins.php
  • Пользователи – users.php
  • Инструменты – tools.php
  • Параметры – options-general.php

Я всё ещё хочу удалить пункт меню «Ссылки», покажу это на примере:

function remove_admin_menu_items() {
	remove_menu_page('link-manager.php');
}
 
add_action( 'admin_menu', 'remove_admin_menu_items' );

Как видите, это делается через хук, функцию разумеется можете назвать как угодно, код вставляется в functions.php активной темы.

remove_submenu_page()

субменю в админке wordpress

Удаляет вложенный элемент меню.

<?php remove_submenu_page( $menu_slug, $submenu_slug ) ?>

$submenu_slug – ярлык вложенного элемента меню, который вы хотите удалить, а параметр $menu_slug – это ярлык его родительского элемента.

Пожалуй, стоит перечислить все $submenu_slug стандартных пунктов меню (для тех, кто так и не разобрался).

  • Главная – index.php
  • Обновления – update-core.php
  • Все записи – edit.php
  • Добавить новую – post-new.php
  • Рубрики – edit-tags.php?taxonomy=category
  • Метки – edit-tags.php?taxonomy=post_tag
  • Библиотека – upload.php
  • Добавить новый – media-new.php
  • Все ссылки – link-manager.php
  • Добавить новую – link-add.php
  • Рубрики ссылок – edit-tags.php?taxonomy=link_category
  • Все страницы – edit.php?post_type=page
  • Добавить новую – post-new.php?post_type=page
  • Темы – themes.php
  • Виджеты – widgets.php
  • Меню – nav-menus.php
  • Редактор – theme-editor.php
  • Установленные – plugins.php
  • Добавить новый – plugin-install.php
  • Редактор – plugin-editor.php
  • Все пользователи – users.php
  • Добавить нового – user-new.php
  • Ваш профиль – profile.php
  • Все инструменты – tools.php
  • Импорт – import.php
  • Экспорт – export.php
  • Установка сети – network.php
  • Общие – options-general.php
  • Написание – options-writing.php
  • Чтение- options-reading.php
  • Обсуждение – options-discussion.php
  • Медиафайлы – options-media.php
  • Приватность – options-privacy.php
  • Постоянные ссылки – options-permalink.php

И небольшой пример. Сейчас мы удалим подпункт меню «Обновления».

function remove_admin_submenu_items() {
	remove_submenu_page( 'index.php', 'update-core.php' );
}
 
add_action( 'admin_menu', 'remove_admin_submenu_items');
Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

Смотрите также