Cómo redireccionar a los usuarios al iniciar y cerrar sesión
Ho veremos cómo podemos redireccionar a los usuarios al iniciar y cerrar sesión, es decir, podemos establecer por defecto a qué página les enviamos una vez que se han logueado y cuando han salido de nuestro WordPress.
Veamos cómo.
Enviar a los usuarios a una página después del login
Si tienes una web donde tienes distintos usuarios, ya sea un blog o una web de membresía, seguramente necesitas enviar a los usuarios a una página específica cuando inician sesión en el sistema.
Lo más utilizado es que cuando inicien sesión vayan a una página concreta. Si en tu WordPress tienes una página de login donde tienes el formulario para iniciar sesión, lo más cómodo es enviarles a la página en la que se encontraban antes de ir a ese login. Es decir, si están en la página de Quienes somos (por ejemplo), y hacen clic en la opción del menú Iniciar sesión (que a su vez les lleva a una página con el formulario para loguearse), una vez que hayan entrado en el sistema, se les redireccionará de forma automáticamente a la página Quienes somos (es decir, la última página que habían visitado antes de iniciar sesión).
No sé si me he explicado bien…
Para hacer esto, utilizamos el siguiente código:
// Redireccionar a los usuarios a la página anterior al login
if ( (isset($_GET['action']) && $_GET['action'] != 'logout') || (isset($_POST['login_location']) && !empty($_POST['login_location'])) ) {
add_filter('login_redirect', 'my_login_redirect', 10, 3);
function my_login_redirect() {
$location = $_SERVER['HTTP_REFERER'];
wp_safe_redirect($location);
exit();
}
}
Este código es muy sencillo, crea una función llamada my_login_redirect la cual almacena el valor de location y envía al usuario con login_location.
Enviar a los usuarios a la página de inicio después del logout
Cuando alguien cierra sesión en la web, lo normal es que se le envíe a una página concreta, lo normal es no complicarse la vida y enviar al usuario a la página de inicio.
Vamos a ver el código que necesitamos para hacer esto:
// Redireccionar a la home después de salir del sistemaadd_action('wp_logout',create_function('','wp_redirect(home_url());exit();'));
Como puedes ver, este código tiene poco que explicar 🙂
Alternativa
Si no quieres estar metiendo código en tu sistema y prefieres utilizar un plugin, Login and Logout Redirect es uno de los mejores, y quizás el más utilizado.
Su funcionamiento es muy sencillo y redirige a los usuarios al instante al iniciar y cerrar sesión.

Añadir las opciones de login y logout al menú principal
Y para terminar este artículo, creo que lo único que faltaba es saber añadir al menú de navegación principal las opciones de entrar y salir (login y logout). Con esto tendrás tu sistema de entrada a tu WordPress completo.
Tan solo tienes que utilizar este código:
// Añadir las opciones de login/logout al menú principal
//add_filter('wp_nav_menu_items', 'add_login_logout_link', 10, 2);
function add_login_logout_link($items, $args) {
$loginoutlink = wp_loginout('index.php', false);
$items .= '<li>'. $loginoutlink .'</li>';
return $items;
}
De este código no tenemos nada que decir, hace lo que tiene que hacer, sin más…
2 comentarios
Hola José, muchas gracias por tus aportaciones.
Tengo dos consultas:
1) Cómo puedo poner el enlace de logout en un submenú, es decir, no en el menú principal sino en uno de los elementos del menú principal.
2) Cómo puedo evitar que ingresen a la url en específico del contenido privado si es que no han iniciado sesión. Es decir, que si por ejemplo escriben directamente en el navegador http://www.pagina.com/misesion NO puedan ver el contenido y los redirija al login.
Espero me puedas ayudar. Muchísimas gracias
Hola Dámaris, en primer lugar quiero agradecerte que visites el blog, leas, y sobretodo, comentes los artículos.
Respecto a lo que me preguntas, puedo aconsejarte esto:
1) Para poner el logout en un submenú, puedes utilizar el plugin Login Logout Register Menu. En las capturas de pantalla de la información del plugin puedes ver cómo hacerlo.
2) En cuanto a restringir contenido, tienes varios métodos: el primero es utilizar código y así te ahorras un plugin. También puedes utilizar alguno de estos métodos que explico aquí. Y por último, puedes crear un membership site con algún plugin de los que hay en el mercado. Si optas por esta solución, yo te aconsejo utilizar Restrict Content Pro, tienes una versión gratuita y otra de pago. En cuanto a la redirección, puedes hacerlo copiando la url del botón de login y pegándola en el mensaje que se mostrará a los usuarios que no han iniciado sesión.
Espero haberte podido ayudar. Si tienes alguna otra pregunta, no dudes ponerte en contacto conmigo de nuevo.
Te vuelvo a agradecer que visites el blog y te animo a leer y comentar más artículos.
Un saludo.