Домой Wp-Recall WP-Recall: Проблемы и решения Отображение роли в списке пользователей
5ответ(ов) в теме
Tanis
не в сети 2 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
1
22:05

Андрей, добрый вечер. Нужна ваша помощь. Можно ли как то в списке пользователей (который выводится через [ userlist ] ) под именем выводить еще роль пользователя.
В личном кабинете я вывожу следующим образом:


add_filter('rcl_sidebar_user','get_role_user',1,2);
function get_role_user($content_lk,$user_id){
$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);
$replace = array(
		'administrator' => '<span style="color:red;">Администратор</span>', 
		'editor' => 'Редактор',
		'author' => 'Автор', 
	);
	$role = strtr($role, $replace);
$content_lk .= '<div align="center" style="color: #133F6F; font-size:12px; font-weight: bold; padding-bottom:10px; margin-top:-10px; ">';
$content_lk .= ''.$role;
$content_lk .= '</div>';
return $content_lk;
}


Вывод пользователей в списке, как я понял, осуществляется через shortcodes.php

$userlist .='<div class="user-single list-list">
			<div class="thumb-user"><a title="'.$names[$id].'" href="'.$url.'">'.get_avatar($id,70).'</a>'.$rayt_user.'</div>
			<div class="user-content-rcl">'.$action.'<a href="'.$url.'"><h3 class="user-name">'.$names[$id].'</h3></a>';
			


Можно ли как то сюда добавить вывод роли?
Спасибо.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
2
23:29

Вы можете использовать этот кусок кода

$user_data = get_userdata( $user_id );
$roles = $user_data->roles;
$role = array_shift($roles);

Только вместо $user_id используйте $id. В переменной $role будет как обычно роль пользователя.

0
Tanis
не в сети 2 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
3
23:49

Андрей, спасибо. А как правильно туда вставить?
Если, я в строку

<div class="user-content-rcl">'.$action.'<a href="'.$url.'"><h3 class="user-name">'.$names[$id].'</h3></a>';

добавляю
?><?php  $user_data = get_userdata( $id );
$roles = $user_data->roles;
$role = array_shift($roles);
echo $role;  ?><?

то роли выводятся в самом верху страницы в одну строку.

0
Андрей CS
не в сети 3 дня
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16855
4
00:06

Вот вариант рабочего кода.

Просто замените этот кусок

$userlist .='<div class="user-single list-list">
			<div class="thumb-user"><a title="'.$names[$id].'" href="'.$url.'">'.get_avatar($id,70).'</a>'.$rayt_user.'</div>
			<div class="user-content-rcl">'.$action.'<a href="'.$url.'"><h3 class="user-name">'.$names[$id].'</h3></a>';

на это


$user_data = get_userdata( $id );
$roles = $user_data->roles;
$role = array_shift($roles);

$userlist .='<div class="user-single list-list">
			<div class="thumb-user"><a title="'.$names[$id].'" href="'.$url.'">'.get_avatar($id,70).'</a>'.$rayt_user.'</div>
			<div class="user-content-rcl">'.$action.'<a href="'.$url.'"><h3 class="user-name">'.$names[$id].' ('.$role.')</h3></a>';

Роль будет выводится рядом с именем.
По такому же принципу вы можете разместить указание роли в любом другом месте.

0
Tanis
не в сети 2 года
На сайте с 08.05.2014
Участник
Тем 26
Сообщения 71
5
00:16

Большое Вам спасибо!

0
Тема закрыта. Публикация новых сообщений запрещена.