Intereting Posts
Изменение permlink и SEO Каков наилучший способ получить путь к каталогу для wp-config.php? Как отключить поле comment_notes_before в WordPress comment_form Плагин для ограничения доступа пользователей, не являющихся администраторами, к существующим тегам Создание страницы для просмотра списка сообщений для пользовательского типа сообщений? пользовательский тип сообщения и нестандартная галерея как загрузить все мультимедийные файлы на компьютер Внутренняя ссылка, когда на общем IP-адресе изменить ширину полноэкранного редактора Как сообщения и категории связаны друг с другом в wp 4.1.1? Удалите Google Fonts, которые (возможно) добавлены плагинами Сохранение данных формы в другой базе данных Условный тег в Widget Logic для проверки страницы верхнего уровня или подстраницы Невозможно отправить данные простой формы в HTML Я изменил post_type, и теперь получаю 404 ошибки

Как получить роль пользователя определенного блога в многопользовательском режиме?

Как мы можем получить роль пользователя определенного сайта в сети Multisite?

Предположим, что пользователь является подписчиком на родительском сайте и администратором своего собственного поддомена. Есть ли способ вернуть роль только на родительский сайт или конкретный идентификатор блога?

Пример: get_wpmu_user_role($user_id, $blog_id);

Solutions Collecting From Web of "Как получить роль пользователя определенного блога в многопользовательском режиме?"

Вы можете использовать WP_User :

 $wp_user_obj = new WP_User( // $user_id get_current_user_id(), // $name | login, ignored if $user_id is set '', // $blog_id get_current_blog_id() ); 

Или get_users() :

 $get_users_obj = get_users( array( 'blog_id' => get_current_blog_id(), 'search' => get_current_user_id() ) ); 

Поскольку они оба blog_id , если вы его предоставляете.

Первый возвращает объект WP_User , роли доступны следующим образом:

 // array of roles $wp_user_obj->roles // access the first or only $wp_user_obj->roles[0] 

Последний возвращает массив объектов WP_User , на самом деле только один объект, поскольку поиск user_id может возвращать только один уникальный объект, роли доступны следующим образом:

 // array of roles $get_users_obj[0]->roles // access the first or only $get_users_obj[0]->roles[0] 

Другая идея, никогда не делала этого сама, но если у вас есть какой-то общий логин и вы хотите получить информацию от текущего пользователя, тогда это тоже может работать:

 switch_to_blog( $blog_id ); $current_user_at_different_blog = wp_get_current_user(); restore_current_blog(); 

wp_get_current_user() возвращает объект WP_User , поэтому информация доступна следующим образом:

 // array of roles $current_user_at_different_blog->roles // access the first or only $current_user_at_different_blog->roles[0] 

И последнее, но не менее важное: есть current_user_can_for_blog() который можно использовать следующим образом:

 current_user_can_for_blog( $blog_id, $capability ); 

На странице codex указано:

Имеет ли текущий пользователь возможность или роль для данного блога.

Но я сильно подозреваю, что current_user_can() не должен использоваться для ролей , но проверки возможностей также являются полезными и полезными.