Personal tools

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

written by ultraviolet on

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 記法を使うとかそういうことも多分できる。


4 Responses to “BuddyPress 関数/プロパティの備忘録”

  1. comment from article example

    We stumbled over here coming from a different website and thought I should check things out. I like what I see so now i’m following you. Look forward to looking into your web page for a second time.

  2. comment from philippines products|philippines handmade products|philippines exported products|natural jewelry|philippines handicrafts|shell jewelry|shellcrafts|woodcrafts|philippines handicrafts manufacturer|cebu fashion accessories|cebu shell jewelry|cebu shell neckl

    Good blog you’ve ggot here.. It’s hard to find high-quality writing
    like yours these days. I truly appreciate people like you!
    Take care!!

    My weblog … philippines products|philippines handmade products|philippines exported products|natural jewelry|philippines handicrafts|shell jewelry|shellcrafts|woodcrafts|philippines handicrafts manufacturer|cebu fashion accessories|cebu shell jewelry|cebu shell necklace|philippines jewelry manufacturer|seashells necklace|philippines exporter jewelry|philippines fashion accessories|wholesale philippines handicrafts|wholesale philippine jewellery

  3. comment from used vans for sale in valdosta

    I am actually thankful to the owner of this website who has shared this wonderful paragraph at at this place.

    Here is my web site: used vans for sale in valdosta

  4. comment from Kristian

    this one is similar to my enclosure my family and i got a hold of just lately, extremely happy with it for anyone on the
    fence with regards to acquiring one, get it done, you will not be sorry

    My page corner steam shower (Kristian)

Leave Your Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

  • Languages

  • Recent Posts

  • Archives

  • Categories

  • Themes

  • Subscriptions

  • Meta

  • Social Services

    Flickr  Picasa  movapic  Photobucket  Zooomr  YouTube  Ustream  Vimeo  scribd  SlideShare  Hatena Bookmarks  Diigo  Commons Marker  Google Reader  StumbleUpon  Digg  Reddit  Hatena Diary  Rauru Blog  WordPress  Blogger  LiveJorunal  Livedoor Blog  posterous  Tumblr  Clipp  Twitter  Plurk  LogPi  identi.ca  Disqus  IntenseDebate  TypePad  Last.fm  GoodReads  LibraryThing  Booklog  amazon wish list  Polyvore  pupe  Upcoming  Wakoopa  yelp  Dopplr  Foursquare  ロケタッチ  GetGlue  Hatena Mono  Kiva  ohloh  MySpace  Windows Live Space  LinkedIn  Facebook  Google+  Plaxo  Netvibes  FriendFeed  backtype  klout  MyBlogLog  socialtunes  kotonoha  2manji  Himitsuku  iddy  mixi  the interviews