BuddyPressのユーザーページにオリジナルページを追加しよう
今回カスタマイズしたbp-custom.phpの内容
/*親メニューの追加だよ*///ユーザーメニューを追加
add_action( 'bp_setup_nav', 'works_nav');//ユーザーメニュー追加の独自関数をセット
function works_nav() {
global $bp;
bp_core_new_nav_item( array(
'name' => '実績', //メニューの表示名
'slug' => 'works', //スラッグ名
'position' => 75,//追加メニューの表示順位
// http://hoge.com/members/ユーザーID/works/ と、なる
'screen_function' => 'works',
'show_for_displayed_user' => true,//ユーザに表示するか
'default_subnav_slug' => 'works',//ユーザに表示するか
'item_css_id' => 'works'//メニュー
) );
}
function works_title() {
echo '実績一覧';
}
function works_add_title() {
echo '実績追加';
}function portfolio_action_title() {
echo 'ポートフォリオ';
}
function works_content() {
include_once "buddypress/custom_user/works_content.php";
}
function works_add_content() {
include_once "buddypress/custom_user/works_add.php";
}function portfolio_action_content() {
include_once "buddypress/custom_user/works_portfolio.php";
}
function works () {
add_action( 'bp_template_title', 'works_title' );//カスタムユーザーページに見出し
add_action( 'bp_template_content', 'works_content' );//カスタムユーザーページに表示したい内容
bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );//テーマファイルの呼び出し(この記述で、メンバーページのファイル)
}function works_add () {
add_action( 'bp_template_title', 'works_add_title' );//カスタムユーザーページに見出し
add_action( 'bp_template_content', 'works_add_content' );//カスタムユーザーページに表示したい内容
bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );//テーマファイルの呼び出し(この記述で、メンバーページのファイル)
}
function portfolio_action () {
add_action( 'bp_template_title', 'portfolio_action_title' );//カスタムユーザーページに見出し
add_action( 'bp_template_content', 'portfolio_action_content' );//カスタムユーザーページに表示したい内容
bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );//テーマファイルの呼び出し(この記述で、メンバーページのファイル)
}
/*子ページの追加だよ*/
add_action('bp_setup_nav', 'work_list_subnav_tab', 100 );//実績一覧
add_action('bp_setup_nav', 'work_list_add_tab', 100 );//実績一覧
add_action('bp_setup_nav', 'portfolio_view_tab', 100 );//実績一覧function work_list_subnav_tab() {
global $bp;
bp_core_new_subnav_item( array(
'name' => '実績一覧',
'slug' => 'work_list',
'parent_url' => trailingslashit( $bp->displayed_user->domain . 'works' ),
'parent_slug' => 'works',
'screen_function' => 'works',
'position' => 50
)
);
} function work_list_add_tab() {
global $bp;
if($bp->loggedin_user->id != $bp_displayed_user_id){
bp_core_new_subnav_item( array(
'name' => '実績追加',
'slug' => 'work_add',
'parent_url' => trailingslashit( bp_loggedin_user_domain() . 'works' ),
'parent_slug' => 'works',
'show_for_displayed_user' => false,
'screen_function' => 'works_add',
'position' => 50
)
);
}
}
function portfolio_view_tab() {
global $bp;
bp_core_new_subnav_item( array(
'name' => 'ポートフォリオ',
'slug' => 'portfolio',
'parent_url' => trailingslashit($bp->displayed_user->domain . 'works' ),
'parent_slug' => 'works',
'show_for_displayed_user' => true,
'screen_function' => 'portfolio_action',
'position' => 50
)
);
}
ページ: 1 2