我正在尝试制作一个自定义的Buddypress个人资料标签,并使其成为用户个人资料的登录页面。我已经在functions.php中定义了选项卡:
// Profile home tab
function profile_tab_overview() {
global $bp;
bp_core_new_nav_item( array(
'name' => 'Overview',
'slug' => 'overview',
'screen_function' => 'overview_screen',
'position' => 40,
'parent_url' => bp_loggedin_user_domain() . '/overview/',
'parent_slug' => $bp->profile->slug,
'default_subnav_slug' => 'overview'
) );
}
add_action( 'bp_setup_nav', 'profile_tab_overview' );
function overview_screen() {
// Add title and content here - last is to call the members plugin.php template.
add_action( 'bp_template_title', 'overview_title' );
add_action( 'bp_template_content', 'overview_content' );
bp_core_load_template( 'buddypress/members/single/plugins' );
}
function overview_title() {
echo 'Overview';
}
function overview_content() {
echo 'Content';
}
然后我将其设置为wp-config.php中的个人资料登录页面,
//Change BuddyPress default Members landing tab.
define('BP_DEFAULT_COMPONENT', 'overview' );
如果我将BP_DEFAULT_COMPONENT更改为标准的Buddypress个人资料页面(如“个人资料”),则可以使用,但不适用于我创建的自定义页面。有谁知道为什么,或者我能做什么?
答案 0 :(得分:1)
这应该使用BuddyPress 4.0+解决此问题:)
//Set Default Tab to Overview
define('BP_DEFAULT_COMPONENT', 'overview' );
add_filter( 'bp_is_active', function($retval, $component){
if($component === 'overview') return true;
return $retval;
}, 10, 2 );
答案 1 :(得分:1)
@Russ Powers修复非常完美..除了您的账户之外,其他所有账户均如此。当我在buddypress dasboard中单击您的个人资料时,当地址为:domain / members / you时,我会收到404错误
如果我只使用:
//Set Default Tab to active
define('BP_DEFAULT_COMPONENT', 'active' );
工作正常。但是用我的自定义选项卡我得到404错误..不知道为什么。 / member / you /某事之后的所有内容都可以正常运行,但是对于每个输入其个人资料/ members / mynick的用户,都会出错。
我正在使用此操作,因此没有人直接去wp-admin
add_action( 'load-profile.php', function() {
if( ! current_user_can( 'manage_options' ) && function_exists( 'bp_core_get_user_domain' ) )
exit( wp_safe_redirect( bp_core_get_user_domain( get_current_user_id() ) ) );
} );
答案 2 :(得分:0)
您使用的是哪个版本的BuddyPress?可能需要升级到4.0+-请注意,这可能是预期的。来自https://buddydev.com/what-is-new-in-buddypress-4-0/
恢复BP_DEFAULT_COMPONENT的行为
BP_DEFAULT_COMPONENT常量用于指定默认着陆 用户个人资料上的页面 链接(http://example.com/members/username/)已打开。
在BuddyPress 3.0中,添加用户首页(主屏幕)后, 行为改变了。如果启用了首页,则此常量 不行。为了使其工作,您必须禁用用户首页。 BuddyPress 4.0再次恢复了BP_DEFAULT_COMPONENT的霸主地位。 现在,它将按预期工作。
或者,您使用的是4.0+,则可能需要降级:https://buddypress.org/support/topic/bp_default_component-no-longer-working/
我正在使用define('BP_DEFAULT_COMPONENT','dashboard');在我的functions.php中,但由于一些更新而不再起作用。 .... 刚刚回滚到3.2.0,现在已经修复了它。