it-swarm.com.de

Wie bekomme ich eine Mitgliederliste basierend auf der Rolle mit buddypress?

Ich bin neu in Buddypress.

Mein Problem ist: Ich habe eine Vorlage zum Abrufen der Mitgliederliste basierend auf der Rolle erstellt.

<?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>

Aber ich erhalte keine Benutzerliste basierend auf der Rolle. Bitte helfen Sie mir und schlagen Sie mir eine Idee vor.

1
Addy

Um die Paginierung beizubehalten, versuchen Sie Folgendes:

<?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

Wenn Sie diesen Code direkt unter while ( bp_members() ) : bp_the_member(); in der Mitglieder-Schleife verwenden, können Sie sehen, welche Mitglieder Autor sind.

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

Ich weiß, das ist nicht genau das, was Sie tun möchten, aber es sollte Sie auf den richtigen Weg bringen.

Hinweis: Bei diesem Code wird davon ausgegangen, dass allen Benutzern eine einzelne Rolle zugewiesen ist.