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