WordPress как на ладони
WordPress Meetup #4. Встречаемся в Москве wordpress jino

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.7

<?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)

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

6 комментов
  • campusboy2832 cайт: www.youtube.com/c/wpplus

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

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

      Просто: smile

      remove_menu_page('add_count');
      1
      Ответить2.5 года назад #
    • lincaseidhe69 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.5 года назад #
  • @ Алексей

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

    Ответить2 месяца назад #
    • lincaseidhe69 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
      Ответить2 месяца назад #
Здравствуйте, !     Войти . Зарегистрироваться