usuario sesion registro redireccionar plugin pagina inicio hacer despues contraseña como php wordpress redirect login registration

php - sesion - Redirigir la página de inicio de sesión/registro de Wordpress a una página de inicio de sesión/registro personalizada



usuario y contraseña en wordpress (5)

Es posible que pueda engancharse al gancho de login_head y emitir un redireccionamiento allí.

Tengo un sitio web, con un sistema de usuario. Quiero integrar el sistema de usuario de wordpress en ese sitio web, pero aún quiero usar las páginas de registro / inicio de sesión del sitio web. No quiero que nadie pueda iniciar sesión o registrarse usando los formularios de inicio de sesión o registro de Wordpress. En cambio, cuando intentan acceder a las páginas de inicio de sesión / registro en Wordpress, quiero que esas páginas las redirijan a mis propias páginas de inicio de sesión / registro.

¿Hay alguna forma de hacer esto? Probé con Google, pero todo lo que pude encontrar fue una redirección DESPUÉS de que el usuario inicie sesión o se registre, que no es lo que quiero.

Gracias de antemano.


add_action(''init'',''possibly_redirect''); function possibly_redirect(){ global $pagenow; if( ''wp-login.php'' == $pagenow ) { wp_redirect(''http://google.com/''); exit(); } }


Para restringir el acceso directo solo para ''wp-login.php'', sin solicitud POST o GET (útil para formularios de inicio de sesión personalizados de Ajax), utilizo la función avanzada:

function possibly_redirect(){ global $pagenow; if( ''wp-login.php'' == $pagenow ) { if ( isset( $_POST[''wp-submit''] ) || // in case of LOGIN ( isset($_GET[''action'']) && $_GET[''action'']==''logout'') || // in case of LOGOUT ( isset($_GET[''checkemail'']) && $_GET[''checkemail'']==''confirm'') || // in case of LOST PASSWORD ( isset($_GET[''checkemail'']) && $_GET[''checkemail'']==''registered'') ) return; // in case of REGISTER else wp_redirect( home_url() ); // or wp_redirect(home_url(''/login'')); exit(); } } add_action(''init'',''possibly_redirect'');


Si está utilizando una página de inicio de sesión personalizada, pero sigue usando wp_login_form (), tenga en cuenta que el formulario se PUBLICARÁ en wp-login.php, por lo que querrá verificar si $ _POST está vacío antes de redireccionar.

function prefix_wp_login_redirect() { global $pagenow; if( $pagenow == ''wp-login.php'' && empty($_POST)) { auth_redirect(); exit(); } }


El gancho de acción correcto es login_init que solo se login_init en wp-login.php .

Aquí, no ?action=action-name se está solicitando, por lo que es la página principal de inicio de sesión:

add_action(''login_init'', function(){ if( !isset( $_GET[''action''] ) ) { wp_redirect( ''http://example.com'' ); } });

Para todas las solicitudes, podemos usar un enganche específico login_form_ACTION-NAME , es decir, postpass , logout , lostpassword , retrievepassword , resetpass , register e login . Ejemplo:

add_action(''login_form_register'', function(){ wp_redirect( site_url(''custom-registration/'') ); });