WordPress : Astuces de redirection après Login/Logout
Vous souhaitez réorienter des utilisateurs sur la connexion et/ou la déconnexion de votre blog. Voici quelques astuces de redirection.
1/ Rediriger chaque utilisateur vers une page définie
Voici le système de Roles mis en place par WordPress :
Administrateur (Administrator) – Quelqu’un qui a accès à toutes les fonctions d’administration.
Editeur – (Editor) Quelqu’un qui peut publier et gérer les billets et les pages ainsi que gérer les billets des autres utilisateurs, etc.
Auteur – (Author) Quelqu’un qui peut publier et gérer ses propres billets.
Contributeur – (Contributor) Quelqu’un qui peut écrire et gérer ses billets, mais pas les publier.
Abonné – Quelqu’un qui ne peut gérer que son profil.
Cette astuce consiste, après connexion, à diriger chaque utilisateur vers une page selon son rôle.
Placez ce code dans le fichier functions.php de votre thème :
// Login Redirect
add_filter(« login_redirect », « roles_login_redirect », 10, 3);
function roles_login_redirect($redirect_to, $request, $user){
if(is_array($user->roles))
if(in_array(‘administrator’, $user->roles)) return site_url(‘/wp-admin/’); // Page -> Tableau de bord
elseif(in_array(‘editor’, $user->roles)) return site_url(‘/wp-admin/edit.php’); // Page -> Édition des articles
elseif(in_array(‘author’, $user->roles)) return site_url(‘/wp-admin/post-new.php’); // Page -> Nouvel article
elseif(in_array(‘contributor’, $user->roles)) return site_url(‘/wp-admin/post-new.php’); // Page -> Nouvel article
return home_url(); // Les abonnés sont redirigés en Page d’accueil
}
2/ Rediriger les utilisateurs vers la page d’accueil après une déconnexion
Placez ce code dans le fichier functions.php de votre thème :
// Logout Redirect
function sebb_logout_redirect(){
wp_redirect( home_url() );
exit;
}
add_action(‘wp_logout’,’sebb_logout_redirect’);
L’autre possibilité est de modifier la Fonction de référence « wp logout url »
<?php echo wp_logout_url( $redirect ); ?>
$redirect = URL de redirection à la déconnexion. Par défaut aucune URL.
Il ne vous reste qu’a indiquer un paramètre de redirection :
Pour la page courante
<a href= »<?php echo wp_logout_url( get_permalink() ); ?> » title= »Se déconnecter »>Se déconnecter</a>
Vers la page d’accueil
<a href= »<?php echo wp_logout_url( home_url() ); ?> » title= »Se déconnecter »>Se déconnecter</a>
Vers un autre site
Placez ce code dans le fichier functions.php de votre thème :
add_filter(‘allowed_redirect_hosts’,’another_site_redirect’);
function another_site_redirect($allowed)
{
$allowed[] = ‘www.google.com’;
return $allowed;
}
Placez la ligne de code suivante dans le fichier qui contient le système de connexion sur votre thème :
<a href= »<?php echo wp_logout_url( ‘http://www.google.com‘ ); ?> » title= »Se déconnecter »>Se déconnecter</a>