Скрытие меню админки для конкретного пользователя с ролью администратора

25 нояб. 2017 г., 11:41:49
Просмотры: 14.5K
Голосов: 6

Я пытаюсь скрыть почти все пункты меню админки WordPress для конкретного пользователя с ID, у которого есть роль администратора. Я хочу оставить этому пользователю доступ только к редактированию определенного типа записей "lessons" и другого типа "Events".

Я использую тему LMS от DesignThemes с Themeforest. Непонятно, почему эта тема не дает доступа к WP-админке для других ролей, кроме администратора, таких как редактор или участник. Поэтому я решил дать этому пользователю роль администратора, чтобы он мог заходить в админку. Затем я планирую просто скрыть для него ненужные пункты меню.

Я пробовал плагины вроде User Role Editor Pro и другие бесплатные плагины, но ничего не работает с этой темой. Затем я попробовал код ниже. Но этот код удаляет эти пункты меню для всех администраторов, а мне нужно только для пользователя с ID 279. Любая помощь приветствуется. Вот ссылка на сайт: https://impactmarketingsystems.com/

<?php
function hide_menu(){
 global $current_user;
 $user_id = get_current_user_id();
 // echo "user:".$user_id;   // Используйте это для быстрого определения ID пользователя

    if($user_id != '279'){

        // Для удаления всего меню "Внешний вид" используйте:

        remove_menu_page( 'themes.php' );

        // Для удаления подменю редактора тем и настроек темы
        // из меню "Внешний вид", а также основного подменю "Темы"

        remove_menu_page( 'index.php' );
        remove_submenu_page( 'index.php', 'update-core.php' );

        remove_submenu_page( 'themes.php', 'themes.php' );
        remove_submenu_page( 'themes.php', 'theme-editor.php' );
        remove_submenu_page( 'themes.php', 'theme_options' );

        remove_menu_page( 'users.php' );
        remove_submenu_page( 'users.php', 'user-new.php' );
        remove_submenu_page( 'users.php', 'profile.php' );

        remove_menu_page( 'upload.php' );
        remove_submenu_page( 'upload.php', 'media-new.php' );
        remove_submenu_page( 'upload.php', 'upload.php?page=wp-smush-bulk' );

        remove_menu_page( 'admin.php?page=Wordfence' );
        remove_submenu_page( 'admin.php?page=Wordfence', 'media-new.php' );


        remove_menu_page( 'edit.php?post_type=dt_teachers' );
        remove_submenu_page( 'edit.php?post_type=dt_teachers', 'post-new.php?post_type=dt_teachers' );

        remove_menu_page( 'edit.php?post_type=dt_portfolios' );
        remove_submenu_page( 'edit.php?post_type=dt_portfolios', 'post-new.php?post_type=dt_portfolios' );
        remove_submenu_page( 'edit-tags.php?taxonomy=portfolio_entries', 'edit-tags.php?taxonomy=portfolio_entries&post_type=dt_portfolios' );

        remove_menu_page( 'edit.php' );
        remove_submenu_page( 'edit.php', 'post-new.php' );
        remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=category' );
        remove_submenu_page( 'edit.php', 'edit-tags.php?taxonomy=post_tag' );


        // Удаление пунктов меню "Страницы"
        remove_menu_page( 'edit.php?post_type=page' );
        remove_submenu_page( 'edit.php?post_type=page', 'post-new.php?post_type=page' );


        // Удаление меню "Комментарии"

        remove_menu_page( 'edit-comments.php' );

        //// Удаление меню LMS
        remove_menu_page( 'admin.php?page=parent' );

         remove_menu_page( 'tools.php' );                  //Инструменты
         remove_menu_page( 'options-general.php' );        //Настройки

          remove_menu_page( 'plugins.php' );        //Плагины

          remove_menu_page( 'edit.php?post_type=product' );
0
Все ответы на вопрос 1
2

проблема в вашем логическом выражении. сейчас вы пытаетесь удалить панель управления для всех пользователей, у которых id не равен '279', что означает, что только пользователь с id 279 может видеть панель управления. вы можете попробовать такое условие в if:

if(is_admin() && $user_id == '279'){ // ваш код }
25 нояб. 2017 г. 12:06:53
Комментарии

Спасибо, брат. Я был настолько глуп, что не мог найти эту простую логику. Раньше я пробовал использовать ! и без !, но это не работало. Так что я запутался. Но спасибо за помощь. Это сработало.

Md. Amanur Rahman Md. Amanur Rahman
25 нояб. 2017 г. 12:54:17

Не за что, брат!

Shamsur Rahman Shamsur Rahman
25 нояб. 2017 г. 20:11:43