web-dev-qa-db-fra.com

Ajouter gravatar à la liste des auteurs

J'utilise ce code pour répertorier tous les auteurs du site dans ma barre latérale. Cela fonctionne, sauf que je dois également extraire leur image Gravatar. Cela fonctionne en boucle sur la page d'accueil avec cette

<?php echo get_avatar( get_the_author_email(), '80' ); ?>

mais y a-t-il un moyen de l'ajouter à cette liste également? Aussi .. Je ne peux pas trouver un moyen d'exclure le compte "Admin" en utilisant ce code, est-ce possible?

Je vous remercie!

<?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; 
?>
1
jamie

Configuration de base

<?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>';
    }

 ?>

Exclut l'utilisateur administrateur

Soit vérifier dans la foreach:

foreach ( $users as $user ) {
    if( ! in_array( 'administrator', $user->roles ) ) {
        // echo user list
    }
}

ou si tous les autres utilisateurs sont abonnés, incluez le paramètre role en tant qu'argument pour la requête de l'utilisateur:

$args = array(
    'orderby' => 'nicename',
    'role' => 'subscriber'
);

ou, si vous n’avez qu’un (ou quelques utilisateurs statiques), excluez-le de la requête par son identifiant:

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

Voici un exemple simple montrant les avatars par défaut et répertorie tous les utilisateurs avec le rôle 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
    );
}
1
kaiser

utilisez <?php echo get_avatar( $user->ID, '80' ); ?>, quelque part dans la boucle foreach

Si vous souhaitez exclure un utilisateur particulier, vous pouvez utiliser son id ($user->ID) ou son nom d'utilisateur ($user->user_login) ou si vous souhaitez exclure tous les administrateurs, vous pouvez utiliser if(current_user_can('promote_users')) continue; comme première ligne de foreach. Consultez la référence pour plus d'informations

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

0
Mridul Aggarwal