Dans mon buddypress, j'ai défini la page de registre comme page d'accueil. Désormais, chaque fois qu'un utilisateur connecté essaie d'accéder à la page d'inscription (page d'accueil), il est redirigé vers le répertoire des membres. Je veux qu'il change à la page d'accueil. y a-t-il un moyen? J'ai essayé de changer le fichier buddypress/bp-members/bp-members-signup.php de cette façon:
// 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;
}
Pour ça:
// 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;
}
Je reçois cette erreur:
La page ne redirige pas correctement
Firefox a détecté que le serveur redirige la requête pour cette adresse d'une manière qui ne sera jamais complète.
Quelqu'un sait comment résoudre ce problème?
Prévenez simplement que vous devriez utiliser le filtre bp_loggedin_register_page_redirect_to
pour accomplir cela, plutôt que de modifier les fichiers BuddyPress (qui seront écrasés à chaque mise à jour).
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' );
Mettez ceci dans le fichier functions.php de votre thème ou dans votre fichier bp-custom.php http://codex.buddypress.org/extending-buddypress/bp-custom-php/ . Cela ira dans le même sens, mais sans toucher à BuddyPress.
Ne pourriez-vous pas utiliser quelque chose comme la technique du jardin clos? Je ne sais pas si c'est vraiment ce que vous voulez, mais c'est personnalisable:
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' );
Cela masque les membres et l'activité de ceux qui ne sont pas connectés, mais active les forums et les groupes pour tous - voir la variation ici . Cela va dans le fichier buddypress bp-custom.php et est discuté plus loin ici
Quelqu'un a mis un extrait similaire ici
D'accord. Trouvé le problème. J'essayais de rediriger les membres connectés de la page d'inscription à la page d'accueil. Et la page d'accueil a été configurée pour enregistrer la page. Ainsi, lorsqu'un membre inscrit essaie d'accéder à la page d'inscription, il est redirigé vers la page d'accueil, qui est définie sur la page d'inscription. Donc, il y a une boucle infinie de redirection. Les navigateurs n'autorisent pas ce type de redirection. Donc, je recevais ce message:
La page ne redirige pas correctement
Firefox a détecté que le serveur redirige la requête pour cette adresse d'une manière qui ne sera jamais complète.
Alors. au lieu de cela:
$redirect_to = bp_get_root_domain() . '/';
else
$redirect_to = bp_get_root_domain();
J'ai utilisé ceci:
$redirect_to = bp_get_root_domain() . '/home'; //A custom page.
else
$redirect_to = bp_get_root_domain();
maintenant cela fonctionne bien. :) Problème résolu.
Travaille pour moi :)
// 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;
}