0

私はワードプレスとバディプレスにかなり慣れていません。すべてのグループが表示されるグループセクションで、ユーザーのパブリックグループ、プライベートグループ、および非表示グループに個別のタブを表示する方法を知りたいと思いました。特定のユーザーの合計グループ数を取得する関数はありますがbp_get_total_group_count()、それがどのタイプのグループ(つまり、パブリックプライベート、または非表示)であるかを判別する関数はありません。何かを使わなければならないかもしれapply_filterませんが、よくわかりません。

助けてください。

必要に応じて、コードを提供できます。ありがとう。

4

1 に答える 1

0

掘り下げて答えを見つけました。プロセスは、プライベートグループを個別に表示するためのものであり、パブリックグループと非表示グループについても同じように実行します。

1. bp-groups / bp-groups-template.phpの関数bp_has_groupsの下に、次の行を追加します。

elseif('anything' == $ bp-> current_action){$ type ='anything'; }

2. bp-groups / bp-groups-loader.phpの関数setup_navで、navアイテムを追加します。

$ sub_nav [] = array(

        'name'            => __( 'Private', 'buddypress' ),
        'slug'            => 'anything',
        'parent_url'      => $groups_link,
        'parent_slug'     => $this->slug,
        'screen_function' => 'groups_screen_my_groups',
        'position'        => 20,
        'user_has_access' =>  bp_is_my_profile(),
 );

3. bp-default / members / single / groups.phpで、次の場合に現在にelseを追加します。

elseif(bp_is_current_action('anything')):

     do_action( 'bp_before_member_groups_content' ); ?> 
     <?php locate_template( array( 'members/single/groups/anything.php' ), true ); ?>
     <?php do_action( 'bp_after_member_groups_content' ); 

4. bp-default / members / single / groups /で、新しいファイル'anything.php'を作成し、次のコードを記述して、ユーザーのプライベートグループだけを表示します。

  <li id="field_reg_groups_<?php echo $i; ?>" name="field_reg_groups[]" value="<?php bp_group_id(); ?>" />
    <?php bp_group_name(); ?>
  <div class="item-avatar">
    <a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
  </div>

  <div class="item">
      <div class="item-title"><a href="<?php bp_group_permalink(); ?>"><?php bp_group_name(); ?></a></div>

      <div class="item-meta">
       <span class="activity"><?php printf( __( 'active %s', 'buddypress' ), bp_get_group_last_active() ); ?></span>
      </div>

      <div class="item-desc"><?php bp_group_description_excerpt(); ?>
      </div>

       <?php do_action( 'bp_directory_groups_item' ); ?>

  </div>

  <div class="action">

     <?php do_action( 'bp_directory_groups_actions' ); ?>

    <div class="meta">

       <?php bp_group_type(); ?> / <?php bp_group_member_count(); ?>

    </div>

  </div>

  <div class="clear"></div>
   </li>


   <?php } 
   $i++; 
   endwhile; 
   endif; 
   else: ?>
   <p class="reg_groups_none">No selections are available at this time.</p>

それでおしまい。「anything」の値を変更して、パブリックグループと非表示グループについても同じようにします

于 2012-04-29T10:38:29.670 に答える