web-dev-qa-db-ja.com

Buddypress register.phpユーザーリダイレクト

私のbuddypressで私はホームページとして登録ページを設定しました。ログインユーザーが登録ページ(ホームページ)にアクセスしようとすると、メンバーディレクトリにリダイレクトされます。ホームページに変更してほしいです。方法はありますか?私はこの方法でbuddypress/bp-members/bp-members-signup.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;
}

このエラーが発生しました:

ページが正しくリダイレ​​クトされていません

Firefoxは、サーバーがこのアドレスの要求を決して完了しないようにリダイレクトしていることを検出しました。

誰もがこれを修正する方法を知っていますか?

1
Towfiq

BuddyPressファイルを変更するのではなく、bp_loggedin_register_page_redirect_toフィルタを使用して(アップグレードごとに上書きされます)、ただ頭を上げてください。

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' );

これをあなたのテーマのfunctions.phpまたはあなたのbp-custom.phpファイル http://codex.buddypress.org/extending-buddypress/bp-custom-php/ に入れてください。 BuddyPress自体に触れることなく、同じことができます。

3
Boone Gorges

あなたは壁に囲まれた庭のテクニックのようなものを使うことができませんでしたか。それがあなたが望むものであるかどうかはわかりませんが、カスタマイズ可能です。

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' );

これはログインしていないメンバーからメンバーやアクティビティを隠しますが、みんなのためのフォーラムやグループを有効にします - ここでバリエーション を見てください 。これはbuddypress bp-custom.php ファイルに入っており、ここでさらに議論されています

誰かが似たようなスニペット をここに入れます

0
Aces

OK。問題を見つけました。ログインしているメンバーを登録ページからホームページにリダイレクトしようとしていました。そしてホームページを登録ページに設定しました。そのため、登録メンバーが登録ページにアクセスしようとすると、登録ページに設定されているホームページにリダイレクトされます。したがって、リダイレクトの無限ループがあります。ブラウザはこの種のリダイレクトを許可しません。だから、私はこのメッセージを得ていました:

ページが正しくリダイレ​​クトされていません

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();

今ではうまくいきます。 :) 問題が解決しました。

0
Towfiq

私のために働く:)

// 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;
}
0
Sceko