WordPress как на ладони
Новые WordPress шаблоны Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

remove_menu_page() WP 3.1.0

Удаляет пункты меню верхнего уровня (записи, медиафайлы, ссылки, страницы) в админ-панели.

Удаляет пункты меню только визуально, т.е. удаление пунктов меню таким образом не предотвращает от доступа к этим пунктам напрямую (например, для доступа можно ввести соответствующую ссылку в браузере). Такое удаление требует контроля доступа пользователя, несмотря на то, что в меню пунктов нет.

Чтобы удалить подменю главного меню, используйте функцию remove_submenu_page().

Хуков нет.

Возвращает

Функция удаляет меню в случае успеха или возвращает false, если удалить не удалось.

Использование

remove_menu_page( $menu_slug );
$menu_slug(строка) (обязательный)
Название меню. Обычно этим названием является название PHP файла, который отвечает за вывод меню, например link-manager.php.
По умолчанию: нет

Примеры

#1. Удалим из меню различные разделы (пункты)

add_action( 'admin_menu', 'remove_menus' );
function remove_menus(){

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

}

Код remove_menu_page: wp-admin/includes/plugin.php VER 4.9.8

<?php
function remove_menu_page( $menu_slug ) {
	global $menu;

	foreach ( $menu as $i => $item ) {
		if ( $menu_slug == $item[2] ) {
			unset( $menu[$i] );
			return $item;
		}
	}

	return false;
}

Cвязанные функции

Из метки: Минимизация движка

Еще из метки: Меню администрирования (admin menu)

Еще из раздела: Админ-панель

13 комментов
Полезные 1 Все
  • @ campusboy3060 cайт: www.youtube.com/c/wpplus

    А как удалить другие пункты меню, которые добавляют назойливые плагины? Понимаю, что надо копаться в самих них, но может есть универсальный метод? К примеру, такие ссылки admin.php?page=add_count

    1
    Ответить3.4 года назад #
    • Ваня

      Просто: smile

      remove_menu_page('add_count');
      1
      Ответить2.9 года назад #
    • lincaseidhe70 cайт: lincaseidhe.ru

      Бывают плагины, которые добавляют на другие хуки. вот например jetpack - ставит свой пункт меню на 'admin_enqueue_scripts'. делаем то же что и здесь, только используем другой хук.

      function remove_jetpack_menu() {
      	remove_menu_page( 'jetpack' );
      }
      add_action( 'admin_print_styles', 'remove_jetpack_menu' );
      1
      Ответить2.8 года назад #
  • @ Алексей

    А не подскажете как убрать пункты меню созданные плагинами Better Ads и Newsletter Pack? Ни один способов не помогает) Пункты так и висят, хотя другие типо CF7 убрал без проблем

    • lincaseidhe70 cайт: lincaseidhe.ru

      Поиском по файлам плагина посмотри функцию add_menu_page - посмотри на какой хук вешает а потом функцию удаления повесь на тот же хук (как в этом примере):

      function remove_jetpack_menu() {
      	remove_menu_page( 'jetpack' );
      }
      add_action( 'admin_print_styles', 'remove_jetpack_menu' );

      В данном случае джетпак вешает добавление меню на "admin_print_styles". То есть функцию удаления нужно повесить на этот же хук.

      1
  • Никак не получается скрыть из Меню Elementor и Polylang. Вроде все файлы перелопатил в поисках ("add_menu_page"), так и не нашел на какой хук они вешают. Прошу помощи help Может есть еще способы альтернативные?

    Ответить3 месяца назад #
    • @ campusboy3060 cайт: www.youtube.com/c/wpplus

      Попробуйте мой плагин Hide Admin Menu Items.

      2
      Ответить3 месяца назад #
      • Как вариант, но нет желания захламлять сайт плагинами. Хотелось бы "руками" с помощью кода или удаления части кода.

        Ответить3 месяца назад #
        • @ campusboy3060 cайт: www.youtube.com/c/wpplus
          add_action( 'admin_menu', 'removing_unnecessary_menu_items', 999 );
          function removing_unnecessary_menu_items() {
          	remove_menu_page( 'elementor' );
          	remove_menu_page( 'mlang' );
          }
          2
          Ответить3 месяца назад #
          • Огромное Благодарю!!! good2 bravo

            p.s. вчера около 4 часов лопатил форумы, ворошил Гугл - но так ничего и не нашел.... просидел до 3х ночи.

            Ответить3 месяца назад #
            • @ campusboy3060 cайт: www.youtube.com/c/wpplus

              Зачем всё так сложно? smile Открыл код плагина, нашёл add_menu_page(), поглядел что в 4 параметре $menu_slug - профит.

              2
              Ответить3 месяца назад #
Здравствуйте, !     Войти . Зарегистрироваться