Cómo redirigir a los usuarios en WordPress

Las redirecciones son una parte estándar de los sitios web, los plugins y los temas. Algunas ocurren justo delante de los ojos, y puede que ni siquiera seas consciente de lo que ocurre en el fondo.

Aunque las redirecciones suelen dejarse en manos de los desarrolladores, vamos a mostrarte varios consejos que te permitirán hacer esa tarea por tu cuenta.

Índice de Contenido
  1. Cómo redirigir roles de usuario específicos después de un inicio de sesión exitoso
  2. Redirect users after login with Peter’s Login Redirect plugin
  3. Cómo redirigir a un usuario de WordPress después de cerrar la sesión
    1. Login and Logout Redirect
    2. Redirigir al usuario después de enviar un comentario:
  4. Redirigir a los usuarios después de la búsqueda si sólo se ha encontrado un resultado
  5. Redirect users when there’s only one post in a category found
    1. Redirect a user if there was only one post in a category or a tag:
  6. Redirect users to a random page in WordPress
  7. Redirigirte a la conclusión

Cómo redirigir roles de usuario específicos después de un inicio de sesión exitoso

En esta parte del artículo, te mostraremos un código que puedes modificar fácilmente y controlar dónde aterriza un determinado usuario después de iniciar la sesión con éxito a tu sitio web con WordPress.

Por defecto, WordPress llevará a todos los usuarios al panel de control y eso puede ser un problema para algunos de vosotros. Tal vez quieras mantener a tus administradores y autores en el backend mientras quieres llevar a tus otros usuarios directamente a tu página de inicio o quizás a otra página del frontend que hayas creado específicamente para ellos.

Para redirigir a los usuarios en función de sus funciones, sigue los siguientes pasos:

  1. Abre el archivo functions.php
  2. Copia y pega el siguiente código:
function my_login_redirect( $url, $request, 
$user ){ if( $user && is_object( $user ) && 
is_a( $user, 'WP_User' ) ) {
if( $user->has_cap( 'administrator') or 
$user->has_cap( 'author')) {
$url = admin_url();
} else {
$url = home_url('/custom-page /');
}
}
return $url;
}
add_filter('login_redirect', 
'my_login_redirect', 10, 3 );
  1. Save changes

The code shown above will leave the admins right where they need to be – the admin panel, while all other users will be taken to a custom page.

You can easily change URLs by changing the $url variable on the 4th and the 6th line and therefore lead your users to any posts/pages you have created for them.

If you want to control user roles, you can do that easily on the third line of the code. In the above-given example, we have left admins and authors on the admin panel. If you want only admins there, simply remove the authors from the picture:

if( $user->has_cap( 'administrator' ) ) {

Instead of removing authors, you can add other roles as well; it is up to you to decide who will end up on which page.

That’s it. With this code, you don’t need any plugin to control the redirects after a user logs in. If you’re still not into changing the code, see how to redirect users after login with a plugin.

Redirect users after login with Peter’s Login Redirect plugin

While you can quickly redirect users after login by placing some code we showed you earlier, this isn’t the best option for those who aren’t into coding. Also, if you want to get more control over redirections, you will have to know how to modify the code.

Instead of modifying the code, we will show you a plugin which will do the dirty work for you. All you have to do is decide which user goes where, click on few checkboxes, and paste URLs while the plugin will take care of the rest.

Redirección de inicio de sesión de Peter

Aunque hay innumerables plugins de WordPress diseñados para hacer lo mismo, hemos elegido el Peter's Login Redirect para esta parte del artículo.

Este plugin te permitirá elegir a los usuarios en función de sus nombres, roles de usuario e incluso capacidades de usuario y simplemente pegar la URL a la que serán redirigidos esos usuarios después de iniciar la sesión. Es posible incluso elegir otra página si quieres redirigir a ese usuario o grupo de usuarios después de que cierren la sesión. Además, puedes elegir una URL distinta que se utilizará como página de destino para cualquier usuario tras su registro.

Si esto no es suficiente para ti, y quieres mejorar aún más tus redirecciones, la Redirección de Inicio de Sesión de Peter te tiene cubierto. Si, por ejemplo, has creado una página específica para cada usuario, puedes generar la URL directamente desde el plugin. En ese caso, un simple shortcode descrito en el plugin será suficiente para introducir el nombre de usuario y así llevar a ese usuario concreto a su página específica.

Al final, hay algunas opciones del plugin que pueden ayudarte a controlar más el comportamiento del plugin. Puedes configurar el plugin para que sólo utilice un tipo de URL y, por ejemplo, permitir que sólo se utilicen enlaces internos, controlar las redirecciones POST y GET, utilizar un archivo de redireccionamiento externo si es necesario, y elegir quién puede controlar este plugin eligiendo niveles de permiso.

Si necesitas gestionar las redirecciones de inicio de sesión, cierre de sesión y registro, Redirección de inicio de sesión de Peter te dará prácticamente todo lo que necesitas. Ah, sí, ¿hemos mencionado que el plugin es gratuito? Puedes conseguirlo en el repositorio de plugins de WordPress e instalarlo en segundos, después de lo cual todo lo que tienes que hacer es navegar a Configuración -> Redirecciones de inicio de sesión/cierre de sesión.

Cómo redirigir a un usuario de WordPress después de cerrar la sesión

Por defecto, cuando un usuario cierra la sesión en un sitio web de WordPress, se le devuelve a la página de inicio de sesión. Se mostrará un mensaje que notifica al usuario que ha cerrado la sesión con éxito y el resto de la navegación se deja en manos de los usuarios.

Pero, ¿y si quieres que tus usuarios sean redirigidos automáticamente a tu página de inicio, a las páginas de discusión que quieras que vean o a cualquier otra página de interés? ¿Quizás quieras crear una página de cierre de sesión diferente que contenga widgets especiales o que lleve a tus usuarios a otro lugar? Si es así, necesitarás este pequeño código para que todo suceda.

En las siguientes líneas, vamos a mostrarte cómo redirigir fácilmente a un usuario a cualquier URL que desees. Si no quieres utilizar el código para las redirecciones, estamos a punto de mostrarte un sencillo plugin que hará todo eso por ti. Pero antes, vamos a redirigir a un usuario a la página de inicio:

  1. Abre el archivo functions.php
  2. Copia y pega el siguiente código:
add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( home_url() );
exit();
}
  1. Save changes
  2. Logout and enjoy your beautiful homepage

It is simple as that. As you can guess from the code, you can redirect a user to any other URL by changing the third line. So, if you want to lead your users to another page of your own site or to any external page, your code should look something like this:

add_action('wp_logout','auto_redirect_after_logout');
function auto_redirect_after_logout(){
wp_redirect( 'http://www.firstsiteguide.com');
exit();
}

If you want to do more with wp_redirect function, you can learn more about it on WordPress Codex pages.

Login and Logout Redirect

PRICE: Free

Redirecciones de inicio y cierre de sesión


Este plugin gratuito es relativamente sencillo y hará su trabajo perfectamente. En lugar de lidiar con el código, Login and Logout Redirect creará un segmento adicional en la página de configuración. Después de instalarlo y activarlo, tienes que navegar hasta Configuración -> General y desplázate hasta el final de la página. Aquí encontrarás cuadros de entrada separados para las redirecciones de inicio de sesión y de cierre de sesión. Introduce las URLs deseadas, guarda los cambios y ¡ya está!

Cuando empieces a publicar artículos, querrás que la gente los comente, por supuesto. En esta parte de la guía, vamos a mostrarte cómo redirigir a un usuario después de enviar un comentario.

Esta función puede resultarte útil en determinadas situaciones Por ejemplo, puede que quieras crear una página de "agradecimiento" personalizada para un sorteo que estés organizando. Así, cuando los visitantes participen en un sorteo dejando un comentario, podrás redirigirlos fácilmente a esa página de "agradecimiento" en la que puedes proporcionar información adicional sobre los premios.

En realidad, hay un montón de razones diferentes que puedes tener para redirigir a un usuario después de dejar un comentario, así que sin más preámbulos, esto es lo que tienes que hacer para automatizar el proceso.

Redirigir al usuario después de enviar un comentario:

  1. Abrir el archivo functions.php
  2. Copia y pega este código en el archivo:
function redirect_after_comment(){
wp_redirect('/gracias/');
exit();
}
add_filter('comment_post_redirect',
'redirect_after_comment');
  1. Change the name of the page on the 2nd line
  2. Save changes

That’s it. You can now go on and test the function. Open any of your posts and leave a comment. If you have done everything correctly, you should end up on http:/www.yoursite.com/thank-you page or the one specified on the second line of your code.

Página de agradecimiento

No olvides dar las gracias a la gente por comentar, pero tampoco olvides que quieres que tus visitantes se queden en el sitio y sigan navegando. Una buena idea podría ser añadir una lista de tus publicaciones recientes o más populares, o incluso mejor, hacer una lista de todas las publicaciones relacionadas que puedan ser de interés para un comentarista Si tienes una lista de correo, este es un buen lugar para ofrecer una suscripción a la misma.

Aunque esta función ofrece una forma fácil y rápida de redirigir a los usuarios después de que dejen un comentario, puede que te interese un plugin que te proporcione algunas funciones adicionales.

Redirigir a los usuarios después de la búsqueda si sólo se ha encontrado un resultado

La funcionalidad de búsqueda es imprescindible si manejas un gran número de artículos. Si escribes a diario, imagina el número de artículos dispersos en diferentes categorías. Si sólo publicas tres artículos cortos al día, habrá más de mil títulos diferentes en tu base de datos después del primer año. Ahora imagínate que llegas al sitio por primera vez buscando algo concreto: querrás buscarlo.

Por defecto, WordPress buscará en los títulos de las entradas, en las etiquetas y, por supuesto, en el contenido. Por lo tanto, si buscas una palabra o una frase concreta, probablemente encontrará decenas de entradas y páginas que contengan la consulta. ¿Pero qué pasaría si sólo hubiera un resultado de búsqueda?

Si alguien buscaba una frase muy concreta o una frase entera, lo más probable es que sólo haya unos pocos resultados o quizá sólo uno. Ii sólo se encuentra un resultado, redirigir al usuario a la página de resultados de la búsqueda es bastante innecesario. En su lugar, ¿por qué no llevar a ese usuario directamente a la entrada/página encontrada en el resultado?

Veamos cómo hacerlo:

  1. Abre functions.php
  2. Copia este código y pégalo al final del archivo:
add_action('template_redirect',
'redirect_search_result);
function redirect_search_result() {
si (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1 &&
$wp_query->max_num_pages == 1) {
wp_redirect( get_permalink(
$wp_consulta->postes['0']->ID ) );
salir;
}
}
}
  1. Save changes

You have prepared your WordPress for the new functionality. After you have saved changes, every time a user searches for something which will return only one results, that user will be redirected directly to the post/page.

Even if it seems like nothing much, we’re sure your visitors will like you for saving them a click of a button. Saving a click here and a click there will result in a better user experience and that’s probably something you want on your website, isn’t it?

Redirect users when there’s only one post in a category found

Instead of opening a category or tag page which contains only one result, you could redirect that user directly to the post/page. As with the most of our code snippets, it will be enough just to copy and paste the code:

Redirect a user if there was only one post in a category or a tag:

  1. Open functions.php file
  2. Copy and paste the following code:
function redirect_to_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
} add_action('template_redirect', 'redirect_to_post');
  1. Save changes

After you’re done with the code and you have saved the changes, you can test the feature by opening a category or tag page which contains only one post/page in it. Instead of opening a page where only that one post/page is shown, you will be redirected directly to the post. Awesome, isn’t it?

Since some users might get confused by this, it would be a nice idea to include a custom message which will tell users that there was only one result found and that the redirection occurred. If you want to do that, you can leave the message on top of the post/page a user was redirected to by inserting a simple “echo” statement. In that case, your code would look like this:

function redirect_to_post(){
global $wp_query;
if( is_archive() && $wp_query->post_count == 1 ){
the_post();
$post_url = get_permalink();
wp_redirect( $post_url );
}
echo "Since there was only one result found, 
you have been redirected to this post/page!";
}
add_action('template_redirect', 'redirect_to_post');

Now that even a message has been implemented, you’re done and you won’t have to take care of those categories and tags which contain only one post/page. But don’t let this feature be an excuse for not writing new articles in the category.

Redirect users to a random page in WordPress

This might not be a standard feature of every WordPress website, but sure can be a fun tool to have somewhere on your site. If you write a lot or maybe have numerous galleries, you can end up having thousands of pages which an average user won’t get to see. So why wouldn’t you make things a bit more interesting with redirecting a user to a random post?

OK, you won’t be redirecting a user to a random post without their knowledge or do that on the homepage, of course. But you can create a simple button or link which a user can click after which he will be taken to another page of your site. Maybe it’s a gallery. Maybe a cool editorial you had written years ago. Who knows. It can be fun.

Let’s get started:

  1. First you need to prepare your redirect link. Open your functions.php file
  2. Copy and paste the following code:
add_action('init','random_add_rewrite');
function random_add_rewrite() {
global $wp;
$wp->add_query_var('random');
add_rewrite_rule('random/?
  1. Guardar cambios
  2. Ir a www.yourdomain.com/?random=1

, 'index.php?random=1', 'top'); } add_action('template_redirect','random_template'); function random_template() { if (get_query_var('random') == 1) { $posts = get_posts('post_type=post&orderby=rand&numberposts=1'); foreach($posts as $post) { $link = get_permalink($post); } wp_redirect($link,307); exit; } }

Después de esto, estás listo para crear tu enlace/botón. Todo lo que tienes que hacer es enlazar con http://www.yourdomain.com/?random=1 y cada vez que un usuario abra la página, será redirigido a una página aleatoria. Disfruta de tu nueva función.

Redirigirte a la conclusión

Tarde o temprano, querrás redirigir a determinados usuarios en situaciones específicas. Tanto si hay una buena razón para ello y tratas de que tus visitantes compren algo, como si sólo quieres hacer más cómodo el proceso de inicio de sesión, este tutorial te ayudará a gestionar las redirecciones.

Si te sientes lo suficientemente cómodo con la codificación, podrás mejorar esto y redirigir a los usuarios en diferentes situaciones también. Si no, esperamos que estos ejemplos hayan sido suficientes para cubrir tus necesidades.

Si quieres conocer otros artículos parecidos a Cómo redirigir a los usuarios en WordPress puedes visitar la categoría Tutoriales.

¡Más Contenido!

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Go up