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

Этот метод только СКРЫВАЕТ, но не удаляет пункты

Необходимо в файл functions.php Вашей темы внести код:

add_action('admin_menu', 'remove_menus');
function remove_menus(){
	global $menu;
	$restricted = array(
		__('Dashboard'),
		__('Appearance'),
		__('Tools'),
		__('Users'),
		__('Settings'),
		__('Plugins')
	);
	end ($menu);
	while (prev($menu)){
		$value = explode(' ', $menu[key($menu)][0]);
		if( in_array( ($value[0] != NULL ? $value[0] : "") , $restricted ) ){
			unset($menu[key($menu)]);
		}
	}
}
  • __(‘Dashboard’) — главная страница админки (консоль);
  • __(‘Appearance’) — пункт меню “Внешний вид”;
  • __(‘Tools’) — пункт меню “инструменты” — это где всякие там: “импорт”, “экспорт”;
  • __(‘Users’) — пользователи;
  • __(‘Settings’) — пункт меню “Настройки”. Его очень даже можно закрыть для клиентов, а то они настроят …;
  • __(‘Plugins’) — ну и наконец, святое: пункт меню “Плагины”.

Для удаления подменю можно воспользоваться функцией remove_submenu_page($menu_slug, $submenu_slug).

Где

$menu_slug(строка) (обязательный) Название пункта меню, подпункт которого нужно удалить. Обычно это название php файла отвечающего за отображение страницы (см. его в адресной строке браузера).

$submenu_slug(строка) (обязательный) Название подпункта меню, который нужно удалить. Обычно это название php файла отвечающего за отображение страницы (см. его в адресной строке браузера). Указывать нужно вместо с параметрами запроса и в url_encode().

Например, с помощью этого кода мы удалим подменю “Обсуждения” из основных настроек:

add_action( ‘admin_menu’, ‘my_remove_menu_pages’ ); function my_remove_menu_pages() { // для версий WP 3.1 и выше if ( function_exists(‘remove_menu_page’) ) { remove_submenu_page( ‘options-general.php’, ‘options-discussion.php’ ); } else { // для версий WP ниже 3.1 unset( $GLOBALS[‘submenu’][‘options-general.php’][25] ); } }

Для удаления подпункта