web-dev-qa-db-fra.com

exclure les rôles de la vue d'ensemble

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!

1
AKNL

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.

2
Jack Johansson