Quantcast
Channel: Rauru Blog » WordPress
Viewing all articles
Browse latest Browse all 20

BuddyPress 関数/プロパティの備忘録

$
0
0

BuddyPress 用の plugin を作っている中で、ドキュメントであまり解説されてなかった内部関数とかフックとかについて使い方を調べたので、忘れないうちにメモ。
$bp は BuddyPress クラスです。参照するときは global $bp; と宣言してください。

関数とかプロパティとか

bp_is_member()

Member Profile を含む画面であるかどうかを判断する関数、であるはずなのだけど、1.5系ではバグがあって正しい値を返してくれないっぽい(少なくともwp_headフック内では返してくれなかった)。仕方が無いので、今のところ $bp->displayed_user->id > 0 で判定してる。

bp_is_group()

Group Profile を含む画面であるかどうかを判断する関数。Group の Home, Admin, Forum, Wiki, Members, Send Invites で true になることを確認済み。Group Directory では false の模様。wp_head フック内でも行ける。

bp_get_group_permalink()

Group Home への permalink を返す関数。Group Profile を含む画面のとき、例えば bp_before_group_header_meta フックから引数無しで呼ぶと (おそらく Groups Loop の中にいるお陰で) 今の Group の URL を返してくれる。ヘッダ作成のために wp_head フックから呼ぶ場合は (おそらく Groups Loop の外なので) 引数無しではダメで、bp_get_group_permalink( $bp->groups->current_group ) として呼ぶ必要がある。

$bp->displayed_user->id

Member Profile を含む画面で、表示ユーザのユーザID (Integer)を返す。wp_headフックから呼んでも、今表示されてるユーザのIDを返してくれるっぽい。後述する xprofile_get_field_data() とかで使う。

$bp->displayed_user->domain

Member Profile を含む画面で、表示ユーザの Profile Home の URL を返す。wp_headフックから呼んでも、今表示されてる User Profile の URL を返してくれるっぽい。

$bp->displayed_user->fullname

Member Profile を含む画面で、表示ユーザのフルネームを返す。wp_headフックから呼んでも、今表示されてる User Profile のフルネームを返してくれるっぽい。

bp_core_get_userlink()

Member Profile を含む画面で、表示ユーザの Profile Home へのリンクを返す。ユーザ名とaタグを含むHTMLリンクを作ってくれる。wp_head フック内から使えるかどうかは未確認。

xprofile_get_field_data(フィールド名, ユーザID)

指定したユーザの Extended Profile を返す関数。フィールド名は文字列。ユーザIDは上述の $bp->displayed_user->id とかで引っ張ってくる。wp_head フック内でも使えた。

bp_core_fetch_avatar()

ユーザやグループの avatar を引っ張ってくる。引数がやたらたくさんあって、全貌を把握できていない。とりあえず自分の用途に使う分には以下のとおり。
html 引数は、true を指定すると img タグを作り、false だと画像のURIのみ返す。img タグを作るときは class とかも指定可能。
no_grav は、false を指定すると Gravatar を使うっぽい感じなので、とりあえず true を指定してる。
type は、full か thumb を指定可能。avatar の大きさっぽい。
Member Profile を含む画面から呼び出す場合、上記二つ以外をデフォルトのまま呼べば、表示ユーザの avatar を返してくれる。これは wp_head フックの中でも確認。
グループの avatar を呼び出す場合、あんまり自信が無いのだけど、'item_id' => グループID, 'object'=>'group', 'avatar_dir'=>'group-avatars' で呼べばとりあえずそれっぽいのが返ってくる。

$bp->groups->current_group

Group Profile を含む画面で表示グループの情報を返す。current_group はグループっぽいクラスだと思うのだけどよくわかっていない。wp_head フックからでも使える。確認できたプロパティは

$bp->groups->current_group->id
グループID
$bp->groups->current_group->name

グループ名

$bp->groups->current_group->description
グループ説明文

グループの Home の URL を返すプロパティもあると思うのだけどよくわからなかったので、上述の bp_get_group_permalink() で取ってきた。

bp_activity_add()

Activity Stream にアクティビティを追加する関数。引数がやたら多く、あまりよく使い方がわかってない。とりあえずの使い方は enemy plugin の記事 を参照してみて。

bp_core_current_time()

現在時刻を返す関数。bp_activity_add() 呼ぶときに引数として現在時刻を与えることになるのでこれを使った。

フック

bp_before_member_header_meta

Member Profile 画面に表示項目を追加したいときに使うフック。Cubepoint Integration plugin がここをフックしてるので真似してみた。

bp_before_group_header_meta

Group Profile 画面に表示項目を追加したいときに使うフック。bp_before_member_header_meta と似たような名前のフックがあるだろうと予想して grep かけたらヒットしたのでそのまま使ってる。

bp_member_header_actions

Member Profile 画面に Action Button を追加するときに使うフック。位置的には bp_before_member_header_meta より後ろになる。BuddyPress Followers plugin が「フォローする」ボタンを設置するために使ってる。

bp_get_the_profile_field_value

ユーザの Extended Profile の各項目を表示する際に呼ばれるフィルタ。Custom Profile Filters for BuddyPress plugin がこれを使ってる。このフックでフィルタを挟むと Extended Profile の特定特定項目で markdown 記法を使うとかそういうことも多分できる。


Viewing all articles
Browse latest Browse all 20

Latest Images

Trending Articles





Latest Images