Как удалить ненужные пункты меню в админ-панели 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

Предыдущие записи из рубрики `Настройка 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

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

ОтветитьОтветить

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

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