質問:バディプレスでグループの新しいサブナビゲーションアイテムを作成しようとしています。それにはbp_core_new_subnav_item
を使用していて、screen_function
を渡していますが、グループページにタブが表示されません。
私はこれを見なければならないという考えはありますか?
私たちのコードがあります。
bp_core_new_nav_item( array(
'name' => 'Document List',
'slug' => 'group-document-list',
'parent_url' => $bp->loggedin_user->domain . $bp->groups->slug . '/',
'parent_slug' => $bp->groups->slug,
'screen_function' => 'group_document_list_function_to_show_screen',
'position' => 55 ) );
function group_document_list_function_to_show_screen() {
//add title and content here - last is to call the members plugin.php template
add_action( 'bp_template_title', 'group_document_list_function_to_show_screen_title' );
add_action( 'bp_template_content', 'group_document_list_function_to_show_screen_content' );
bp_core_load_template( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );
}
function group_document_list_function_to_show_screen_title() {
echo 'Documents for this group';
}
function group_document_list_function_to_show_screen_content() {
display_group_document_list();
}
BPがコアナビゲーションを設定した後にのみ項目を設定するようにしてください。 bp_setup_nav
より高い優先順位で10
にフックすることによってこれを確実にすることができます。
したがって:
function bbg_setup_nav() {
bp_core_new_subnav_item( array(
'name' => 'Document List',
'slug' => 'group-document-list',
'parent_url' => $bp->loggedin_user->domain . $bp->groups->slug . '/',
'parent_slug' => $bp->groups->slug,
'screen_function' => 'group_document_list_function_to_show_screen',
'position' => 55
) );
}
add_action( 'bp_setup_nav', 'bbg_setup_nav', 100 );
書かれているように、このコードはユーザープロファイルのGroups
サブナブにサブナブタブを追加することを意図していることを覚えておいてください。代わりにそれを単一のグループにアタッチしたい場合は、異なるparent_slug
とparent_url
を使用して、それをグループに相対化する必要があります。
// ...
'parent_slug' => bp_get_current_group_slug(),
'parent_url' => bp_get_group_permalink( groups_get_current_group() )
// ...
正直に言うと、サブナビ項目をBPグループに追加する場合は、BPグループ拡張APIを使用することをお勧めします。 http://codex.buddypress.org/developer-docs/group-extension-api/ 。いくつかの方法を入力するだけで、BP固有のナビゲーションロジックがすべて実行されます。メソッドがある場合(create_screen()
のように使用しない場合は、空白のままにしてください)。