Intereting Posts
Проектирование области участника на моем сайте Предпочтительное использование home_url ()? Когда вы устанавливаете таблицу стилей, можно ли удалить атрибут типа? как настроить пользовательскую библиотеку мультимедиа? Статическая страница для рабочего стола или мобильного телефона Мои условные теги не работают Изменить таксономический термин для пользовательского типа сообщения на часовом хроне проблема с владельцем / группой на сервере как запустить php-код в виджетах? Как добавить несколько кнопок в Tiny MCE в одном плагине? Как узнать «meta_key» для заказа моего настраиваемого типа сообщений Сохранить фильтр для таксономий Какая тема WordPress совместима с плагином Optima Express (плагин недвижимости)? Как я могу ссылаться на последнее сообщение в категории? Обнаружить страницу тега и включить изображение для этого конкретного тега

Удаление страницы администратора, добавленной сторонним плагином. Гравитационные формы в этом примере

Я пытаюсь скрыть страницу справки от редакторов, добавленных плагином форм тяжести . Я считаю, что раньше сталкивался с тем же вопросом с другими плагинами, поэтому я хотел бы знать, как правильно это сделать для сторонних плагинов. Это то, что у меня до сих пор не работает. Конечно, он работает для других меню WP, поэтому мне интересно, ограничена ли функция только WP меню?

function remove_menu_links() { if( !current_user_can('manage_options') ) { remove_menu_page('admin.php?page=gf_help'); // this is the pages url } } add_action( 'admin_menu', 'remove_menu_links'); 

Хорошо, Eugene's Answer работает в случае плагина, который не касается пользовательских возможностей.

http://codex.wordpress.org/Roles_and_Capabilities
API-интерфейс плагина WordPress позволяет добавлять, удалять и изменять роли и возможности. Поскольку плагины могут изменять роли и возможности, в этой статье рассматриваются только те, которые используются по умолчанию.


Итак, если его код работает без проверки возможности, мы должны посмотреть, как GravityForms выполняет свое действие add_submenu_page .
И для этого мы отбрасываем всю папку плагина внутри хорошего редактора кода (NotePad ++, TextMate и т. Д.) И делаем глобальный поиск и находим наш материал.

 // wp-content/plugins/gravityforms/gravityforms.php // all parameters removed from the original code, except $page_title and $capability add_submenu_page( $parent_slug, __("Help", "gravityforms"), $menu_title, $has_full_access ? "gform_full_access" : $min_cap, $menu_slug, $function ); 

И несколько строк, прежде чем мы увидим:

 $has_full_access = current_user_can("gform_full_access"); $min_cap = GFCommon::current_user_can_which(GFCommon::all_caps()); if(empty($min_cap)) $min_cap = "gform_full_access"; 

Теперь мы продвигаемся с плагинами Members , которые Btw GF распознает, и у нас есть следующее на экране конфигурации для роли редактора.
НО ОТМЕЧАЯ, что gform_full_access не отображается в этом списке. Он должен быть добавлен вручную через интерфейс плагина …

введите описание изображения здесь

После этого и разметки полной возможности доступа remove_submenu_page работает, как ожидается, роль редактора.



Код ссылки для всех подменю (запоминание первого – это самое главное меню).

 function remove_menu_links() { if( !current_user_can( 'manage_options' ) ) { // remove_submenu_page( 'gf_edit_forms', 'gf_edit_forms' ); // remove_submenu_page( 'gf_edit_forms', 'gf_new_form' ); // remove_submenu_page( 'gf_edit_forms', 'gf_new_formf_help' ); // remove_submenu_page( 'gf_edit_forms', 'gf_entries' ); // remove_submenu_page( 'gf_edit_forms', 'gf_settings' ); // remove_submenu_page( 'gf_edit_forms', 'gf_export' ); // remove_submenu_page( 'gf_edit_forms', 'gf_update' ); // remove_submenu_page( 'gf_edit_forms', 'gf_addons' ); remove_submenu_page( 'gf_edit_forms', 'gf_help' ); } } add_action( 'admin_menu', 'remove_menu_links', 9999 ); 

Интересный плагин

Администрирование делает это скрывая магию в мгновение ока и полностью ПРО.

Вам нужно добавить свой крючок в конец очереди, а затем удалить меню путём:

 function remove_menu_links() { if( !current_user_can( 'manage_options' ) ) { remove_menu_page( 'gf_edit_forms' ); // this is the pages url } } add_action( 'admin_menu', 'remove_menu_links', 9999 ); 

Если вы хотите удалить подменю, вам необходимо использовать следующий фрагмент:

 function remove_menu_links() { if( !current_user_can( 'manage_options' ) ) { remove_submenu_page( 'gf_edit_forms', 'gf_help' ); } } add_action( 'admin_menu', 'remove_menu_links', 9999 ); 

Это сводило меня с ума. Ответы, предоставленные здесь, дали мне большую часть пути, но этот особый пункт меню Gravity Forms немного странный.

Мне удалось добраться до его корня, проанализировав глобальную переменную $ submenu, которая содержит все данные меню. Следующий фрагмент должен убить элемент подменю обновления для вас, когда он подключен к admin_menu (), как указано выше 🙂

 remove_submenu_page( 'gf_edit_forms', 'gf_update' ); 

Плагин GravityForms переименовывает пункт меню верхнего уровня в соответствии с первым подменю.

Например; если вы добавили только роль gravityforms_view_entries к роли редактора, то первым элементом подменю будет «Записи», поэтому родительское меню будет «gf_entries», а не «gf_edit_forms». Таким образом, следующий код удалит элемент «Справка» из подменю для редакторов только с такой возможностью:

 function remove_menu_links() { remove_submenu_page( 'gf_entries', 'gf_help' ); } add_action( 'admin_menu', 'remove_menu_links', 9999 ) ; 

Надеюсь это поможет.