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