GroupsのデフォルトのビューをActivityコンポーネントではなくForumコンポーネントにすることを考えています。デフォルトのランディングコンポーネント/ページを変更するための最善/最も簡単な方法は何ですか?
[編集 - 私の最初の答えは次のBP 1.6でのみ機能するでしょう]
1.6以降のBuddyPressのバージョン
function bbg_change_group_default_extension( $default ) {
return 'forum';
}
add_filter( 'bp_groups_default_extension', 'bbg_change_group_default_extension' );
1.6より前のBuddyPressのバージョン
当面は、次のようなものを使用する必要があります。これはbp_core_new_nav_default()の修正版です(スラグ関連のさまざまなものが原因で、グループの場合には機能しなくなる関数)。
function bbg_set_new_group_default_subnav() {
global $bp;
if ( bp_is_group() ) {
// Set up your new default
$new_screen_function = 'groups_screen_group_forum';
$new_default_slug = 'forum';
$parent_slug = bp_get_current_group_slug();
if ( $function = $bp->bp_nav[$parent_slug]['screen_function'] ) {
if ( !is_object( $function[0] ) )
remove_action( 'bp_screens', $function, 3 );
else
remove_action( 'bp_screens', array( &$function[0], $function[1] ), 3 );
}
$bp->bp_nav[$parent_slug]['screen_function'] = &$new_screen_function;
if ( bp_is_groups_component() && !bp_current_action() ) {
if ( !is_object( $new_screen_function[0] ) ) {
add_action( 'bp_screens', $new_screen_function );
} else {
add_action( 'bp_screens', array( &$new_screen_function[0], $new_screen_function[1] ) );
}
$bp->current_action = $new_default_slug;
}
}
}
add_action( 'bp_setup_nav', 'bbg_set_new_group_default_subnav', 999 );
function bbg_set_new_group_default_action() {
global $bp;
if ( bp_is_group() && !bp_current_action() ) {
$bp->current_action = 'forum';
}
}
add_action( 'bp_setup_globals', 'bbg_set_new_group_default_action', 999 );