Puedes hacerlo fácilmente. Solo necesita especificar un parámetro de redirección. Si está utilizando un enlace de inicio de sesión en la página de inicio para ir a la página de inicio de sesión, la solución de @ sisir es correcta.
<?php echo wp_login_url( $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"] ); ?>
Si está utilizando un formulario personalizado en la portada, luego dentro del <form>
, asegúrese de completar un campo oculto con la URL para redirigir
<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" />
Y si está utilizando wp_login_form()
para generar el formulario, complete un parámetro: http://codex.wordpress.org/Function_Reference/wp_login_form
<?php
$args = array(
'echo' => true,
'redirect' => site_url( $_SERVER['REQUEST_URI'] ),
'form_id' => 'loginform',
'label_username' => __( 'Username' ),
'label_password' => __( 'Password' ),
'label_remember' => __( 'Remember Me' ),
'label_log_in' => __( 'Log In' ),
'id_username' => 'user_login',
'id_password' => 'user_pass',
'id_remember' => 'rememberme',
'id_submit' => 'wp-submit',
'remember' => true,
'value_username' => NULL,
'value_remember' => false );
wp_login_form( $args );
?>
Cambie otros parámetros según lo que tenga o necesite.
Intenta pasar
the_permalink()
como$redirect
argumento:EDITAR:
Lo sentimos, entendí mal tu pregunta originalmente. Prueba esto:
Tenga en cuenta también: el uso adecuado de
wp_redirect()
generalmente requiere agregarexit;
, que he agregado a mi segundo ejemplo.fuente
Gracias a todos, usé un poco de lo que todos recomendaron, así que al final mi código se ve así:
Y en mi formulario de inicio de sesión (estoy codificando mi formulario de inicio de sesión en mi aplicación, gracias @Ashfame por informarme sobre wp_login_form, no tenía idea de que existía). Agregué esto cuando las credenciales de usuario están bien y están listas para iniciar sesión:
Muchas gracias por su ayuda, ¡he votado a todos!
fuente
functions.php
exit()
odie()
despuéswp_redirect()
. De lo contrario, es posible que el código posteriorwp_redirect()
se ejecute, lo que puede generar errores y vulnerabilidades de seguridad.Este es mi código que uso para dirigir a la página de inicio de sesión de wp. Luego, cuando iniciaron sesión, regresaron a donde estaban. Pero no es la página de inicio, sino la página de inicio de sesión de WordPress donde configuro el inicio de sesión personalizado.
Es posible que desee investigar con. Normalmente obtendrá la URL actual de un usuario por
$_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]
fuente
El
login_redirect
gancho del filtro es una solución más completa y efectiva aquí. De esta manera, puede ofrecer diferentes rutas de redireccionamiento para diferentes niveles de usuarios, o mantener la URL de redireccionamiento en caso de error al iniciar sesión (es decir, Contraseña incorrecta).fuente
No ha funcionado ninguna de sus respuestas, pero solo agregó una pequeña cosa, ¡funcionó! Aquí mi código:
Solo agregué
/wp-login.php
en comparación con la respuesta de @ Matt, pero para mí ha sido la clave. ¡Espero que ayude! :)**EDITAR:
Detecté un ERROR cuando estás forzando wordpress para navegar en HTTPS. Este método no funciona porque la redirección está en HTTP. Para solucionar el problema, cambié la función. Este es el resultado:
Puedo comprobar el protocolo y luego Suprimí '
esc_url
' y añadió el protocolo correcto:$protocol://
. También cambié el""
.Estoy basado en esta página .
fuente
Sé que esto es muy tarde, pero hice una publicación sobre cómo hacerlo exactamente si alguna persona futura lo encuentra y lo necesita:
http://www.ryanprejean.com/force-login-with-redirect-and-exceptions/
fuente