Intereting Posts
Предотвратите угадывание пули Для каждых 3 сообщений укажите другой тип сообщения Как получить динамический контент на моей статической домашней странице Будет ли добавлено 40 000 301 перенаправление, замедляющее сайт? Почему «/ page / 2 /» не работает? Должен ли я хранить внешние данные API в моей базе данных WP или сохранять его как переходный? Сохранять и изменять переменную сеанса – PHP SESSION VARIABLE Установите сжатие JPEG для определенных размеров пользовательских изображений Показывать родительские и дочерние таксономии в отдельных выпадающих полях выбора Почему WordPress 3.0.4 продолжает удалять содержимое файла .htaccess? query_posts orderby postmeta Хотите добавить свой пользовательский запрос подготовки, но add_filter не запускается Интерфейс для зарегистрированных пользователей для загрузки / загрузки файлов Как настроить тему? Как отображать галерею, встроенную в пользовательский тип сообщения

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

Как мы можем получить роль пользователя определенного сайта в сети 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() не должен использоваться для ролей , но проверки возможностей также являются полезными и полезными.