web-dev-qa-db-ja.com

Buddypressを使用して役割に基づいてメンバーリストを取得する方法

私はbuddypressで新しいです。

私の問題は、次のとおりです。ロールに基づいてメンバーリストを取得するためのテンプレートを作成しました。

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

しかし、私は役割に基づいてユーザーリストを取得していません。私を助けてください、そして私にどんな考えでも示唆してください。

1
Addy

ページ付けを保存するには、次のことを試してください。

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

メンバーのループ内のwhile ( bp_members() ) : bp_the_member();のすぐ下にこのコードを使用すると、どのメンバーが作者であるかがわかります。

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

これは必ずしもあなたがやりたいことではないことを私は知っていますが、それはあなたを正しい軌道に乗せるべきです。

注:このコードは、すべてのユーザーが単一の役割を割り当てられていることを前提としています。