Удаление пунктов меню в админке 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 в Питере.

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