友達ユーザーのID・フォロー中ユーザーのIDを取得する方法【BuddyPress】
今回はBuddyPressというプラグインのお話の第1回。
”BuddyPressという…”なんて書きましたが、ワードプレスでは超有名プラグインですね。
あまり触らないように避けてきたのですが、今回触る機会がありました。なかなかググっても的確な情報が得られず、結局ソースを読みあさる事になりましたので、このブログにメモ代わりに残しておきます。
という事で今回は、端的な記事になりますが、BuddyPressで友達ユーザー・フォロー中ユーザーのIDを取得する方法です。
~ 目次 ~
友達ユーザーのIDを取得
まず最初に必要になったのがコレ。
特定のユーザーの “友達ユーザーのID” をすべて取得する方法です。下の例では、現在のユーザーの友達のIDが配列で返ってきます。
1 |
$friend_ids = friends_get_friend_user_ids( bp_loggedin_user_id() ); |
”bp_loggedin_user_id”は、現在のユーザーを取得する関数です。ここを特定のユーザーIDに変更すれば、そのユーザーの友達のIDを配列で取得できます。IDが78のユーザーの友達を取得する場合は、下のように記述します。
1 |
$friend_ids = friends_get_friend_user_ids( 78 ); |
この関数のソースは、buddypress/bp-friends/bp-friends-functions.php内に記述されています。
こちらのサイトにも詳しく載っています。
参考:friends_get_friend_user_ids – BuddyBoss Resources
フォロー中ユーザーのIDを取得
フォロー中ユーザーの取得ですが、bp_get_following_idsという関数があるようです。こちらは前節で友達を取得した時に使用した”friends_get_friend_user_ids”とは違って、配列ではなくカンマ区切りの文字列で返ってきます。
下の例は、現在のユーザーのフォロー中ユーザーをカンマ区切りの文字列で取得します。
1 |
$following_ids = bp_get_following_ids( array( 'user_id' => bp_loggedin_user_id() ) ); |
配列で欲しい場合は、下のような感じにすると良いかと思います。
1 |
$following_ids = explode( ',' , bp_get_following_ids( array( 'user_id' => bp_loggedin_user_id() ) ) ); |
現在のユーザーではなく、特定のユーザーのフォロー中ユーザーのIDを取得する場合は、”bp_loggedin_user_id()”をユーザーIDに書き換えます。
ちなみにこの関数はパラメータが配列 OR クエリ文字列タイプとなっていますのでパラメータが1つでも上のように配列(もしくはクエリ文字列型)で書きましょう。
参考:bp_get_following_ids – BuddyBoss Resources
(ちなみに)全ユーザーのIDを取得
これはBuddyPressだからというわけではありませんが、全ユーザーのIDが必要な場合はワードプレス関数のget_usersで取得できます。
もしかすると使い勝手の良いBuddyPressの独自関数などがあるかもしれませんが、とりあえずこれでrole(権限)で絞り込んだりも出来ますので、十分かと。。
1 |
$user_ids = get_users(); |
get_usersは、パラメータで指定した条件のユーザーのIDの配列が返ってきます。詳しくは、下のCODEXのページに載っています。
参考:関数リファレンス/get users – WordPress Codex 日本語版
最後に
と、まあ。こんな感じでユーザーIDの配列が取得できますので、あとはループさせてなんちゃらかんちゃら… と使用できます。
しかし、BuddyPressについては情報が乏しいというか、なんというか。検索では、なかなか明快な答えにたどり着けません。また、何か調べる機会があったらメモ代わりにどんどん書いておこうと思います。