グローバル変数$bpは、新しいJobsコンポーネントを挿入する場所です。グローバル変数$bpをダンプすることにより、すべてのコンポーネントを含む、それに含まれるすべての要素を確認できます。$ bpを簡単にダンプするには、member-header.phpの先頭に以下を追加します。
global $bp;
foreach ( (array)$bp as $key => $value ) {
echo '<pre>';
echo '<strong>' . $key . ': </strong><br />';
print_r( $value );
echo '</pre>';
}
コンポーネント'Jobs'を追加する$bp内の配列はbp_navです。
Functions.phpに以下を追加します。
add_action( 'bp_setup_nav', 'add_subnav_items', 100 ); //Priority must be higher than 10
function add_subnav_items() {
global $bp;
//Jobs tab
$tab_array['name'] = 'Jobs';
$tab_array['link'] = $bp->displayed_user->domain.'jobs';
$tab_array['slug'] = 'jobs';
$tab_array['parent_url'] = $bp->displayed_user->domain;
$tab_array['parent_slug'] = bp_core_get_userlink(bp_loggedin_user_id());
$tab_array['css_id'] = 'jobs';
$tab_array['position'] = 100;
$tab_array['user_has_access'] = '1';
$tab_array['screen_function'] = 'bp_jobs_screen_general';
$bp->bp_nav['jobs'] = $tab_array; //Add new array element to the 'bp_nav' array
}
'screen_function'は、'Jobs'タブが選択されたときに表示される画面を処理する関数であるため、functions.phpに関数'bp_jobs_screen_general'を追加する必要があります。
function bp_jobs_screen_general() {
bp_core_load_template( apply_filters( 'bp_jobs_screen_general','members/single/jobs' ) );
}
この関数は、members / single /でjobs.phpという名前のテンプレートファイルを探すため、作成する必要があります。screen_functionの動作例については、wp-content / plugins / buddypress / bp-groups/bp-groups-screens.php内のグループ画面を表示するための関数を参照してください。