BuddyPressを使ったWordPressでのSNSサイトの構築は日本でも取り組んだことがある方がちらほらいらっしゃいますが、日本語の使い方の情報は結構少ないです。特にプロフィール欄にて画像や動画を埋め込む方法は日本語では見つからなかったのでメモしておきます。
画像を埋め込む方法
埋め込むというより画像をアップロードできる項目を追加できるようにする方法というのが正確な表現かもしれない。『BuddyPress Xprofile Custom Field Types』プラグインを使いましょう。画像以外にも様々な形式をプロフィールに追加できます。
ここでのXprofileというのはExtended Profileのことで、BuddyPressを導入すると自動で作成される?『拡張プロフィール』のことです。
動画を埋め込む方法
YoutubeやVimeoを埋め込む方法です。埋め込み用コードでなくてURLを入力するだけで埋め込めます。
以下のコードをfunctions.phpに追記し、拡張プロフィール側で『複数行テキストエリア』の欄を追加してあげて、そこにYoutubeなりVimeoなりのURLを記載してやれば埋め込んでくれます。
function bp_embed_in_profile() {
add_filter( 'bp_get_the_profile_field_value', 'bp_enable_embed_in_profile', 9, 3 );
}
add_action( 'bp_init', 'bp_embed_in_profile', 0 );
function bp_enable_embed_in_profile($val, $type, $key) {
$field = new BP_XProfile_Field($key);
$field_name = $field->name;
$provider = array( 'youtube', 'vimeo', 'instagram', 'bliptv', 'twitter');
if(strtolower($field_name) == in_array(strtolower($field_name), $provider)) {
$val = strip_tags( $val );
return wp_oembed_get( $val, array( 'width' => 400 ) );
}
return $val;
}