Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Подскажите по функции
Новая тема
Ответить
цитата
30/08/13 в 10:17
despero
граждане програмеры подскажите че не так с функцией , по идее должна определять по айди выводить роль зарегистрированного комментатора рядом с ником в вордпрессе (именно в коментариях)
function get_role($user_id)
{
if(is_int($user_id))
{
$user = new WP_User( $user_id );
if ( !empty( $user->roles ) && is_array( $user->roles ) )
{
foreach ( $user->roles as $role )
echo $role;
}
}
else
echo "Что-то другое";
}
цитата
30/08/13 в 14:41
Yacc
Код:
function getUserRoles($id) {
$user = new WP_User((int)$id);
return implode(' and ', $user->roles);
}
Если нужно выводить роль автора поста (т.е. это в цикле ВП), то вот так:
Код:
echo getUserRoles(get_the_author_meta('ID'))
цитата
30/08/13 в 15:39
despero
Yacc:
да не, нужно именно в коментах , а выводить в нужном месте таким макаром ?
Код:
<?php getUserRoles($id); ?>
а то чето не выводится нефига
цитата
30/08/13 в 16:17
Yacc
Пардон, увидел комментарии, но не увидел комментатора.
despero писал:
чето не выводится нефига
Код:
<?php echo getUserRoles($id); ?>
Роль есть только у комментатора зарегистрированного как пользователь, у обычных комментаторов роли нет.
цитата
30/08/13 в 18:01
despero
все равно чето не то, даже возле моих коментов не выводится нехера
цитата
30/08/13 в 19:06
Yacc
Мой код работает, проверено. Если не выводится значит ты даёшь id = 0.
Сделай такой тест, добавь в single.php внутрь цикла:
Код:
<?php foreach(get_comments(array('post_id' => get_the_ID())) as $comment)
printf(
'Name: %1$s<br/>ID: %2$s<br/>Roles: %3$s<hr/>',
$comment->comment_author,
$comment->user_id,
getUserRoles($comment->user_id)
) ?>
Увидишь примерно следующее:
Name: Not A User
ID: 0
Roles:
---
Name: New User
ID: 6
Roles: editor
---
Name: admin
ID: 1
Roles: administrator
---
Как видишь для не зарегистрированного пользователя Not A User id = 0 и ролей нет.
цитата
30/08/13 в 19:33
despero
Есть контакт
сделал вот так
Код:
<?php echo getUserRoles(
$comment->user_id
); ?>
и все заработало
огромное спасибо
теперь надо еще стандартных администратор и субсрибЁров поменять на каких прикольных Одмин , дрочер и тд.
цитата
31/08/13 в 09:04
despero
Незнаю может кому еще пригодится то проблему вывода стандартных ролей решил таким образом вместо
Код:
<?php echo getUserRoles(
$comment->user_id
); ?>
прописал такое
Код:
<?php if(getUserRoles($comment->user_id)=='administrator') {echo 'Сцукоадмин';} else if(getUserRoles($comment->user_id)=='subscriber') {echo 'Тупо дрочер';} ?>
Новая тема
Ответить
Эта страница в полной версии