Intereting Posts
Каков наилучший способ сделать это? Изменить ссылку на постоянную ссылку внутри сообщения Перенаправить пользователя, если он не вошел в систему Wp_head и wp_footer vs wp_enqueue_script файлы javascript? Пытаясь создать свой собственный тип сообщения, почтовый ящик типа не отображается? Изменение всех вариантов управления с помощью wp.customize с помощью JavaScript Создать страницы автоматически, если они не существуют Как узнать, какие переменные передаются в фильтре / действии и каково их значение? Обновление постоянных ссылок в сообщениях (не изменение домена) Какие пути использует WordPress для себя в домене? Только показывать div на домашней странице / блоге в wordpress / php wp_dropdown_pages не работает с аргументом post_type Отключить всю другую страницу, кроме индекса, зарегистрироваться, войти в систему до входа в систему Создайте роль под-администратора, которая может делать все, кроме использования, или увидеть редактор кода Что означают комментарии с ?

Удаление основной ссылки на Jetpack из меню

Мне нужно удалить ссылку на настройки Jetpack, но не ссылки на Omnisearch и статистику сайта из меню администратора для всех, у кого нет роли администратора:

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

Для этого я придумал этот код:

function remove_posts_menu() { if (!current_user_can('administrator')) { remove_submenu_page('admin.php?page=jetpack', 'admin.php?page=jetpack'); } } add_action('admin_init', 'remove_posts_menu'); 

( Ссылка для функции remove_submenu_page() )

Однако это не работает. Я проверил, что функция вызывается, и поэтому добавив remove_submenu_page('tools.php', 'tools.php'); – когда это добавлено к функции, сразу после удаления ссылки настроек Jetpack ссылка Tools удаляется, но ссылка Broken Link Checker (плагина, который я установил) все еще видна.

Каков правильный способ удаления ссылки Jetpack?

Solutions Collecting From Web of "Удаление основной ссылки на Jetpack из меню"

Попробуйте это вместо этого:

 function remove_posts_menu() { if ( ! current_user_can( 'manage_options' ) ) remove_submenu_page( 'jetpack', 'jetpack' ); } add_action( 'admin_init', 'remove_posts_menu' ); 

где slug меню и подменю slugjetpack .

Меню Jetpack добавлено довольно поздно , поэтому вам нужно будет изменить приоритет по умолчанию, чтобы удалить его чуть позже (приоритет 999), например:

 function jetpackme_remove_jetpack_menu() { if ( ! current_user_can( 'manage_options' ) ) { remove_submenu_page( 'jetpack', 'jetpack' ); } } add_action ( 'admin_menu', 'jetpackme_remove_jetpack_menu', 999 ); 
 function remove_menus(){ if ( ! current_user_can( 'administrator' ) ) { remove_menu_page( 'jetpack' ); } } add_action( 'admin_menu', 'remove_menus', 999 ); 

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