Кодекс WP предлагает различные интересные советы, с которыми вы можете экспериментировать на практике. Была ли у вас когда-нибудь необходимость удалить определенную страницу меню из консоли? Возможно, вы разрабатываете сайт для своего клиента, который может запутаться в меню настроек. Сдуйте пыль с кодекса и проверьте описания функций, позволяющих удалить страницы меню.
Вот то, что вы ищете:
<?php remove_menu_page( $menu_slug ) ?>
Замените слаг меню названием php-скрипта для пункта меню, который вы желаете удалить.
Вот простой пример. Допустим, вы хотите удалить меню записей. Действительно, кому нужны эти унылые записи?
Также давайте удалим меню настроек. Вот как это выглядит до и после:
Быстрый и грязный способ сделать это состоит в добавлении кода напрямую в файл functions.php, но мы пойдем другим путем, создав функциональный плагин. Не переживайте, это очень просто. Просто откройте свой чистый текстовый файл и добавьте к нему немного информации относительно вашего плагина, после чего внесите в него код:
<?php /* Plugin Name: Remove Settings and Posts Menu Description: Just don't want my settings menu anymore and I don't want to write any posts - what's the big deal? Version: 0.1 License: GPL Author: Sarah Gooding Author URI: http://untame.net */ add_action( 'admin_menu', 'my_remove_menu_pages' ); function my_remove_menu_pages() { remove_menu_page('options-general.php'); remove_menu_page('edit.php'); } ?>
Сохраним файл как remove-menu.php (или как вам больше нравится). Затем загружаем этот файл в папку wp-content/plugins.
Последний шаг: не забудьте активировать ваш небольшой плагин. Вы найдете его среди ваших неактивных плагинов:
Это было просто, не правда ли? Учтите, что этот код только удаляет пункт меню, но не препятствует получению доступа пользователям к данной странице, если они знают, где она расположена. Для строго ограничения доступа необходимо использовать более мощные настройки, основанные на пользовательских ролях и возможностях.
Прежде, чем переходить к хранилищу плагинов WordPress, обязательно изучите кодекс, который способен подарить вам много приятных минут. Вы можете отыскать именно то, что вам требовалось, и преобразовать это в свой собственный быстрый плагин.
Источник: wpmu.org
Прикольно, почти то что искал, а подскажите немного не понял, мне нужно сделать так что бы Редактор видел плагины только те которые я ему указал, а все только админ, это возможно? И если да то как примерно…?
Спасибо!
Попробуйте вот этот плагин: http://wordpress.org/extend/plugins/nav-menu-roles/. Возможно, что скрыть определенные плагины не получится, но можно ограничить вообще доступ к разделу плагинов.
А как убрать страничку из меню на сайте? Предлагают ставить плагины, например, Exclude Pages.
Еще варианты:
http://wordpress.org/plugins/admin-menu-editor/
http://wordpress.org/plugins/adminimize/
Подскажите, что надо добавить в ваш код, чтобы данные изменения в меню затрагивали всех пользователей кроме администратора? Я попробовал добавить в свое время такую конструкцию (см. ниже), которую сделал по аналогии с кодом, вставляемым в functions.php, но получил ошибку:
Call to undefined function wp_get_current_user() in /var/www/domain/domain.ru/docs/wp-includes/capabilities.php on line 1353
if (!current_user_can(‘administrator’)):
add_action( ‘admin_menu’, ‘my_remove_menu_pages’ );
endif;
Заранее спасибо!
Похоже, что такого параметра как «administrator», нет в списке доступных для этой функции.
Вот здесь посмотрите список доступных значений для переменной $capabilities (раздел Capabilities Parameters):
http://codex.wordpress.org/Function_Reference/current_user_can
Спасибо. Похоже, надо вставлять не роль, а возможность, хотя подобная конструкция работала в functions.php, а при переносе в отдельный плагин, видимо, надо что-то менять. Попробую разобраться. Не хотелось бы, чтобы у админа тоже отсутствовали нужные ему пункты меню.