Изменить права на просмотр страницы в админке

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

5 Комментарии

  1. Когда-то давно была у меня такая потребность при оптимизации клиентского блога. Я ее решил таким способом:

    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 названия скриптов админки могут быть другими – перед употреблением проверяйте.

  2. Вот нашел такой вариант
    тут можно использовать $_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 '

    You Dont have the right permissions to access this page
    '; exit(); } } } add_action('admin_head','my_restrict_access_meassage');
    • Ну это примерно то же самое, только в нем вместо конкретного ID пользователя указываются права. Можете смело использовать этот вариант.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*