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 admin_url(); // Page -> Tableau de bord
elseif (in_array('editor', $user->roles)) return admin_url('edit.php'); // Page -> Édition des articles
elseif (in_array('author', $user->roles)) return admin_url('post-new.php'); // Page -> Nouvel article
elseif (in_array('contributor', $user->roles)) return admin_url('post-new.php'); // Page -> Nouvel article
return home_url(); // Les abonnés sont redirigés en Page d'accueil
}
Login Redirect
// 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>