Normalmente, si un usuario falla al tratar de acceder en WordPress le devuelve a la misma pantalla con un mensaje de error, que ya aprendimos a modificar para evitar dar pistas a hackers, pero ¿y si quieres enviar al usuario torpe a una página de error distinta?.
Se me ocurre, por ejemplo, enviarle a una página de contacto para que reclame la clave, o incluso a una página en la que ofrecerle servicios personalizados para usuarios registrados. Bueno, lo que sea que se te ocurra.
Si quieres redirigir a los usuarios que acceden a tu WordPress a una página concreta puedes usar la función de login de WordPress, que puedes añadir donde te guste, por ejemplo en un widget de texto, pero con un modificador que la envíe a una URL a tu elección, algo así:
wp_login_form(array( 'redirect' => site_url() )); // en este caso le mandas a la portada de tu web de nuevo
Ahora bien, como he dicho, esto es para los accesos exitosos, cuando el usuario introduce bien sus datos. Pero si lo que quieres es hacer justo lo que comentaba antes, hacer redirección cuando se equivocan, y lo ideal es que esto pase en la pantalla de acceso habitual de WordPress, entonces lo que tienes que hacer es añadir el siguiente código a tu plugin de funciones o archivo functions.php
del tema activo:
add_action( 'wp_login_failed', 'my_front_end_login_fail' ); // hook para el accesso fallido function my_front_end_login_fail( $username ) { $referrer = $_SERVER['HTTP_REFERER']; // ¿de donde viene? // si hay una referencia válida, y no es la pantalla de acceso por defecto if ( !empty($referrer) && !strstr($referrer,'wp-login') && !strstr($referrer,'wp-admin') ) { wp_redirect( $referrer . '?login=failed' ); // le añadimos algo de información (login-failed) a la URL del tema en uso exit; } }
Ya solo te queda guardar los cambios y probar que funciona.
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!