web-dev-qa-db-fra.com

Comment obtenir la liste des membres basée sur le rôle en utilisant buddypress?

Je suis nouveau dans buddypress.

Mon problème est le suivant: j'ai créé un modèle pour obtenir la liste des membres basée sur le rôle

<?php if ( bp_has_members( bp_ajax_querystring( 'members' ). '&per_page=25&role=author' ) ) : ?>

    <ul id="members-list" class="item-list row kleo-isotope masonry">

      <?php while ( bp_members() ) : bp_the_member(); ?>
         <li><a href="<?php bp_member_permalink(); ?>"><?php bp_member_avatar(); ?></a></li>
      <?php endwhile; ?>

    </ul>

Mais je ne reçois pas de liste d'utilisateurs basée sur le rôle. S'il vous plaît, aidez-moi et suggérez-moi une idée.

1
Addy

Pour préserver la pagination, essayez:

<?php    
$authors = get_users( array( 'fields' => 'ID', 'role' => 'author' ) );
$authors = implode(',', $authors);
?>

<?php if ( bp_has_members( bp_ajax_querystring( 'members' ). '&per_page=25&include=' . $authors) ) : ?>
//etc
3
shanebp

Si vous utilisez ce code directement sous while ( bp_members() ) : bp_the_member(); dans la boucle des membres, vous pourrez voir quels membres sont les auteurs.

<?php 
   $user_id = bp_get_member_user_id(); 
   $user = new WP_User( $user_id );

   if ( $user->roles[0] == 'author' ) {
      echo 'this user is an author';
   } 
?>

Je sais que ce n’est pas exactement ce que vous aimeriez faire, mais cela devrait vous mettre sur la bonne voie.

Remarque: Ce code suppose que tous vos utilisateurs se voient attribuer un seul rôle.