BuddyPressのユーザーページにオリジナルページを追加しよう ITかあさん

ITかあさん

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
  )
  );
  }
初夏のJavaScript祭 in サーキュレーションビル ForPro

ページ: 1 2