Как удалить ненужные пункты меню в админ-панели WordPress

Это первый пост за последний год, на этом блоге. В котором я расскажу как удалять пункты меню в админ-панели WordPress. Чтобы сразу было понятно о каком меню идет речь посмотрите на картинку:
меню WordPress

Удалять лишние меню может пригодится, когда сайт делается для клиентов или просто, если какие-то из пунктов меню лишние и мозолят вам глаза, каждый раз, когда вы заходите в админку WordPress. К таким пунктам, например, можно отнести "Ссылки", очень часто ссылками блогеры не пользуются и пункт меню можно смело удалить.

Пример удаления пункта меню "ссылки" в админ-панели ВП:

function remove_menus () {
global $menu;
	$restricted = array(__('Links'));
	end ($menu);
	while (prev($menu)){
		$value = explode(' ',$menu[key($menu)][0]);
		if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
	}
}
add_action('admin_menu', 'remove_menus');

Возможно на каких-то сайтах сделанных на Вордпресс не используются "Комментарии", тогда можно удалить еще и блок комментариев из меню:

function remove_menus () {
global $menu;
	$restricted = array( __('Links'), __('Comments') );
	end ($menu);
	while (prev($menu)){
		$value = explode(' ',$menu[key($menu)][0]);
		if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
	}
}
add_action('admin_menu', 'remove_menus');

Так, изменяя переменную $restricted, можно удалить хоть все пункты меню.

Вот весь список названий пунктов меню:

$restricted = array( 
	__('Dashboard'), 
	__('Posts'), 
	__('Media'), 
	__('Links'),
	__('Pages'), 
	__('Appearance'),
	__('Tools'), 
	__('Users'), 
	__('Settings'), 
	__('Comments'), 
	__('Plugins') 
);
Рубрика: Настройка WordPress | 30 июня 2011

Https://import-sigaret.live

https://import-sigaret.live американские сигареты: купить сигареты.

import-sigaret.shop

Предыдущие записи из рубрики `Настройка WordPress`

11 комментариев

ct, 30.06.2011 в 12:07

или можно так:

add_action('admin_menu', 'fb_menu');
function fb_menu() {
  remove_menu_page('link-manager.php');
  remove_menu_page('tools.php');	
  remove_menu_page('edit-comments.php');	
}
kama, 30.06.2011 в 16:36

ct, спасибо, не знал про эту функцию. Она, кстати, появилась в версии 3.1.0, для более ранних версий материал этой статьи - самое то.

zenith, 30.06.2011 в 18:13

Это первый пост за последний год

Дай бог не последний 🙂

ig0r74, 01.07.2011 в 09:08

Шикарно, как раз сейчас занимаюсь клиентским сайтом, раньше убирал ненужные пункты с помощью плагина.

юрий, 04.07.2011 в 01:16

спасибо. а то стоит лишнее

Артем, 14.07.2011 в 17:39

Скрыть хорошо, а как добавить произвольный пункт меню или подменю? Буду благодарен за ответ.

Serg, 22.07.2011 в 14:15

Хорошая вещь, только скрытие пунктов не запрещает юзеру напрямую получить доступ к этим функциям 😉

И пару вопросов
1. Как это сделать в зависимости от роли юзера.
Я, разрабатывая сайт (админ) хочу видеть всё, а юзеру (редактор) всё не нужно. Конечно большинство запретов решается плагами типа role manager но всё равно остаются пункты (от плагов, например) которые не нужно показывать клиенту.

2. Нужно скрыть не полностью раздел меню, а только несколько пунктов. Например из параметров не показывать пермалинки и индексацию. Как это сделать?

kama, 22.07.2011 в 18:37

Serg, точно не знаю. Вроде можно для этого заюзать проверку уровня пользователя:

if( current_user_can('edit_post') )
     // что-то делаем

или использовать глобальную переменную $user_level:

global $user_level;
if( $user_level<=3 )
    // делаем что-то

Про уровни читаем тут (англ).

Dmitriy, 28.07.2011 в 21:08

Спасибо статья очень помогла. А то совсем с рубриками запарился.

Сергей, 24.09.2011 в 11:18

Спасибо огромное.
Давно искал. Перелопатил в интернете кучу сайтов и наконец нашел именно то, что искал.
С уважением, Сергей

Комментировать

Новые комментарии