BuddyPress注册.php用户重定向

时间:2012-01-28 作者:Towfiq

在我的buddypress中,我将注册页面设置为主页。现在,每当登录用户尝试访问注册页面(主页)时,他们都会被重定向到Members目录。我想把它改成,主页。有什么办法吗?我已尝试更改buddypress/bp成员/bp成员注册。php文件如下:

// If the user is logged in, redirect away from here
if ( is_user_logged_in() ) {
    if ( bp_is_component_front_page( \'register\' ) )
        $redirect_to = bp_get_root_domain() . \'/\' . bp_get_members_root_slug();
    else
        $redirect_to = bp_get_root_domain();

    bp_core_redirect( apply_filters( \'bp_loggedin_register_page_redirect_to\', $redirect_to ) );

    return;
}
对此:

// If the user is logged in, redirect away from here
if ( is_user_logged_in() ) {
    if ( bp_is_component_front_page( \'register\' ) )
        $redirect_to = bp_get_root_domain() . \'/\';
    else
        $redirect_to = bp_get_root_domain();

    bp_core_redirect( apply_filters( \'bp_loggedin_register_page_redirect_to\', $redirect_to ) );

    return;
}

I am getting this error:

页面未正确重定向

Firefox检测到服务器正在以一种永远无法完成的方式重定向对此地址的请求。

有人知道怎么解决这个问题吗?

4 个回复
最合适的回答,由SO网友:Boone Gorges 整理而成

只是提醒你应该使用bp_loggedin_register_page_redirect_to 过滤以完成此操作,而不是修改BuddyPress文件(每次升级都会覆盖)。

function bbg_bp_loggedin_register_page_redirect_to( $redirect_to ) {
    if ( bp_is_component_front_page( \'register\' ) )
        $redirect_to = bp_get_root_domain() . \'/home\';

    return $redirect_to;
}
add_filter( \'bp_loggedin_register_page_redirect_to\', \'bbg_bp_loggedin_register_page_redirect_to\' );
把这个放在你的主题函数中。php或您的bp自定义。php文件http://codex.buddypress.org/extending-buddypress/bp-custom-php/. 它会完成同样的事情,但不会触及BuddyPress本身。

SO网友:Aces

你就不能用一些像围墙花园的技术吗。我不确定这是否正是您想要的,但它是可定制的:

function sh_walled_garden()
            {
                global $bp;
                if( bp_is_register_page() || bp_is_activation_page() || bp_is_page( BP_FORUMS_SLUG ) || bp_is_page( BP_GROUPS_SLUG ) )
                    return;

                if( ! bp_is_blog_page() && ! is_user_logged_in() )
                    bp_core_redirect( bp_get_signup_page() );
            }
            add_action( \'bp_init\', \'sh_walled_garden\' );
这会对未登录的用户隐藏成员和活动,但会为每个人启用论坛和组–请参阅变体here. 这个放在buddypress里bp-custom.php 并将进一步讨论here

有人放了一个类似的片段here

SO网友:Towfiq

好啊找到问题。我试图将登录的成员从注册页面重定向到主页。主页设置为注册页面。因此,当注册成员尝试访问注册页面时,他们会重定向回主页,主页设置为注册页面。因此,有一个无限的重定向循环。浏览器不允许这种重定向。所以,我得到了这个信息:

页面未正确重定向

Firefox检测到服务器正在以一种永远无法完成的方式重定向对此地址的请求。

所以而不是这样:

    $redirect_to = bp_get_root_domain() . \'/\';
else
    $redirect_to = bp_get_root_domain();
我用了这个:

    $redirect_to = bp_get_root_domain() . \'/home\'; //A custom page.
else
    $redirect_to = bp_get_root_domain();
现在工作正常。:)问题已解决。

SO网友:Sceko

Work for me :)

// If the user is logged in, redirect away from here
if ( is_user_logged_in() ) {
    if ( bp_is_component_front_page( \'register\' ) )
        $redirect_to = bp_get_root_domain() . \'/\' . bp_get_activity_root_slug();
    else
        $redirect_to = bp_get_root_domain();

    bp_core_redirect( apply_filters( \'bp_loggedin_register_page_redirect_to\', $redirect_to ) );

    return;
}
结束