Add gravatar to author list

时间:2012-10-17 作者:jamie

我使用此代码在侧栏中列出网站上的所有作者。它可以工作,除了我还需要把他们的Gravatar图像拉进去。它在主页上循环工作

<?php echo get_avatar( get_the_author_email(), \'80\' ); ?>
但我有没有办法把它也添加到这个列表中?而且我想不出使用此代码排除“Admin”帐户的方法,这可能吗?

非常感谢。

<?php
$order = \'user_nicename\';
$user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users ORDER BY $order"); // query users
foreach($user_ids as $user_id) : 
$user = get_userdata($user_id);
?>
<li><?php echo \'<a href="\' . $user->user_url . \'">\' . $user->display_name . \'</a>\'; ?><br /></li>
<?php
endforeach; 
?>

3 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

Basic setup

<?php

    $args = array( \'orderby\' => \'nicename\' );
    $users = get_users( $args ); 

    foreach ( $users as $user ) {
        $avatar = get_avatar( $user->ID, \'80\' );
        echo \'<li><a href="\' .
                $user->user_url .
            \'">\' .
                $avatar . \'<br />\' .
                $user->display_name .
            \'</a></li>\';
    }

 ?>

Excluding the Admin User

要么签入foreach:

foreach ( $users as $user ) {
    if( ! in_array( \'administrator\', $user->roles ) ) {
        // echo user list
    }
}
或者,如果所有其他用户都是订阅者,则包括role 参数作为用户查询的参数:

$args = array(
    \'orderby\' => \'nicename\',
    \'role\' => \'subscriber\'
);
或者,如果您只有一个(或几个静态)管理员用户,请按id将其从查询中排除:

$args = array(
    \'orderby\' => \'nicename\',
    \'exclude\' => array( 1, 23 ) //adjust
);

SO网友:kaiser

下面是一个显示默认化身的简单示例,并列出了角色为author.

foreach ( get_users( array( \'role\' => \'author\'  ) ) as $user )
{
    echo get_avatar(
        $user->ID,
        \'96\',
        get_stylesheet_directory_uri().\'/default-avatar.png\',
        $user->nice_name
    );
}

SO网友:Mridul Aggarwal

使用<?php echo get_avatar( $user->ID, \'80\' ); ?>, 在foreach

如果要排除特定用户,可以使用其id($user->ID) 或用户名($user->user_login) 或者,如果要排除所有管理员,可以使用if(current_user_can(\'promote_users\')) continue; 作为foreach的第一行。查看参考资料了解更多信息

http://codex.wordpress.org/Function_Reference/current_user_can

结束

相关推荐

How do I accesss gravatar?

在你的档案下的政府里,我怀疑这会发生,我找不到任何与gravatar有关的东西