wordpressの「buddypress」プラグインで、アクティビティ一覧を任意の場所に出す方法

Activity Loop · BuddyPress Codex

 

以下のコードを表示したいところにはる。

<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' )) : ?>
<?php while ( bp_activities() ) : bp_the_activity(); ?>

<?php bp_get_template_part( 'activity/entry' ); ?>

<?php endwhile; ?>
<?php endif; ?>

 

表示内容はオプションで指定できる。

(オプションを付けた例)

<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ).'&display_comments=false&max=5' ) ) : ?>
<?php while ( bp_activities() ) : bp_the_activity(); ?>

<?php bp_get_template_part( 'activity/entry' ); ?>

<?php endwhile; ?>
<?php endif; ?>

 

!!!注意!!!

上記サイトに載っていたオプション名が変わっているようである。

アクティビティページのプルダウンでみると、以下のようである。

 

<select id="activity-filter-by">
<option value="-1">— すべて —</option>

<option value="new_member">新規メンバー</option>
<option value="updated_profile">プロフィール更新</option>
<option value="activity_update">更新</option>
<option value="friendship_accepted,friendship_created">友達関係</option>
<option value="group_details_updated">グループの更新</option>
<option value="created_group">新規グループ</option>
<option value="joined_group">グループのメンバーシップ</option>

<option value="bbp_topic_create">トピック</option>
<option value="bbp_reply_create">返信</option>

</select>

 

上記を参考に、例えばトピックスの更新のみを見たいときは以下のようにするとうまくいった。

<?php if ( bp_has_activities( bp_ajax_querystring( 'activity' ).'&action=bbp_topic_create' ) ) : ?>
<?php while ( bp_activities() ) : bp_the_activity(); ?>

<?php bp_get_template_part( 'activity/entry' ); ?>

<?php endwhile; ?>
<?php endif; ?>

 

追伸:

/wp-content/plugins/buddypress/bp-activity/bp-activity-template.php

を見ると、以下のようにかいてある。

-----------------------------

* @type string|array|bool $action

Filters by the `type` column in the database, which is a string
* categorizing the activity item (eg, 'new_blog_post', 'created_group').
* Accepts a comma-delimited string or an array of types. Default: false.

-----------------------------

要するに、DBをみて、type columnに書いてあるものでselectしているようだ。

ただ、この理屈で行くと、"new_member"(新規メンバー)とかはactionでは、

フィルタリングできなさそうだ。