👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →
Как изменить права на просмотр страницы в админке?
Функция “remove_menu_page” лишь убирает меню из панели, но введя адрес, на страницу все равно можно войти.
Можно ли убрать это функцией?


Когда-то давно была у меня такая потребность при оптимизации клиентского блога. Я ее решил таким способом:
function disable_user_admin_menu_access() { if ( is_admin() ) { $user = wp_get_current_user(); if ( XXX != $user->ID ) wp_die( 'У вас нет доступа к этой странице.' ); } } add_action( 'load-edit.php', 'disable_user_admin_menu_access' ); add_action( 'load-upload.php', 'disable_user_admin_menu_access' ); add_action( 'load-link-manager.php', 'disable_user_admin_menu_access' ); add_action( 'load-edit-comments.php', 'disable_user_admin_menu_access' ); add_action( 'load-themes.php', 'disable_user_admin_menu_access' ); add_action( 'load-plugins.php', 'disable_user_admin_menu_access' ); add_action( 'load-tools.php', 'disable_user_admin_menu_access' ); add_action( 'load-options-general.php', 'disable_user_admin_menu_access' ); add_action( 'load-options.php', 'disable_user_admin_menu_access' );XXX – это ID пользователя (администратора), которому можно везде. Остальные увидят только надпись У вас нет доступа к этой странице ну или что-то подобное.
То есть нужно ставить действие вида load-название_скрипта. Если подвести курсор к пункту Записи, то он покажет ссылку http://…/wp-admin/edit.php, где edit.php и есть название скрипта.
Код вставляется в файл functions.php. В последней версии WordPress названия скриптов админки могут быть другими – перед употреблением проверяйте.
Спасибо!
А ка закрыть доступ например к этой странице
/wp-admin/admin.php?page=jetpack
Вот нашел такой вариант
тут можно использовать $_GET[‘page’]
//Запретить просмотр страниц в админке function my_restrict_access_meassage(){ if ( is_admin()) { global $pagenow; if (($pagenow == 'admin.php' && $_GET['page']=='jetpack' || $pagenow == 'index.php') && !current_user_can( 'level_10' )){ echo '<div class="wrap"><br /> <div id="message" class="error">You Dont have the right permissions to access this page</div> </div>'; exit(); } } } add_action('admin_head','my_restrict_access_meassage');Ну это примерно то же самое, только в нем вместо конкретного ID пользователя указываются права. Можете смело использовать этот вариант.