Je réutilise un ancien code sur un nouveau site Web où je montre tous les utilisateurs dans une liste avec la dernière image de post en arrière-plan. Tout cela fonctionne bien (je sais que get_users_of_blog est obsolète, mais lorsque j'utilise get_users, mon code se casse) ...
<?php
$blogusers = get_users_of_blog();
if ($blogusers) {
foreach ($blogusers as $bloguser) {
$args = array(
'author' => $bloguser->user_id,
'showposts' => 1,
'caller_get_posts' => 1
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
...........
<?php endwhile;
}
}
}
?>
Le problème est que je ne peux pas le classer par nom et exclure les auteurs de la liste. J'ai essayé de faire ça
$blogusers = get_users_of_blog(array('role' => 'editors', 'orderby => ID));
Mais cela ne fait rien. N'importe qui? Je vous remercie!
Oui, la fonction get_users_of_blog()
est obsolète et la raison pour laquelle votre code est rompu après l'utilisation de get_users()
est la partie ->user_id
, vous devez plutôt utiliser ->ID
.
$blogusers = get_users();
if ($blogusers) {
foreach ($blogusers as $bloguser) {
$args = array(
'author' => $bloguser->ID,
'showposts' => 1,
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
...........
<?php endwhile;
}
}
}
Si vous êtes sur un multisite, vous devez définir l'argument blog_id
de get_users
avec l'ID de votre blog.
Maintenant, à propos de l'exclusion des auteurs. Si vous examinez les paramètres de l'auteur de WP_Query()
, il existe un argument author__not_in
qui accepte un tableau d'identificateurs d'auteur. Par conséquent, pour exclure le rôle test
de votre requête, définissez l'argument role__in
ou role
de get_users()
sur test
, puis utilisez les résultats dans votre WP_Query()
. Vous n’avez pas fourni de détails précis, alors je ne sais pas exactement de quoi vous vous occupez, mais ils devraient faire l'affaire.