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); ?>


а то чето не выводится нефига icon_rolleyes.gif
цитата
30/08/13 в 16:17
 Yacc
Пардон, увидел комментарии, но не увидел комментатора. icon_smile.gif

despero писал:
чето не выводится нефига

Код:
<?php echo getUserRoles($id); ?>

Роль есть только у комментатора зарегистрированного как пользователь, у обычных комментаторов роли нет.
цитата
30/08/13 в 18:01
 despero
все равно чето не то, даже возле моих коментов не выводится нехера icon_sad.gif
цитата
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
Есть контакт icon_smile.gif сделал вот так
Код:
<?php echo getUserRoles($comment->user_id); ?>

и все заработало smail54.gif огромное спасибо
теперь надо еще стандартных администратор и субсрибЁров поменять на каких прикольных Одмин , дрочер и тд. icon_razz.gif
цитата
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 'Тупо дрочер';} ?>
smail54.gif


Эта страница в полной версии