Cómo redirigir usuarios a una página de login personalizada al hacer clic en "Iniciar sesión para responder"

28 ene 2014, 21:44:09
Vistas: 16.3K
Votos: 0

Estoy construyendo mi sitio web en WordPress y he creado mi página de inicio de sesión personalizada. Pero cuando un usuario comenta y otros usuarios no registrados ven el comentario, aparece la línea "Iniciar sesión para responder". Cuando el usuario hace clic en "Iniciar sesión" desde "Iniciar sesión para responder", se redirige a wp-login.php. ¿Cómo puedo redirigir a los usuarios a mi página de login personalizada cuando hagan clic en "Iniciar sesión para responder" en una publicación de WordPress en lugar de a wp-login.php?

0
Todas las respuestas a la pregunta 1
7

Necesitas redirigir cada vez que WordPress busque wp-login.php.

Puedes hacerlo utilizando lo siguiente en el archivo functions.php de tu tema activo.

function redirect_login_page(){

    // Almacenar para verificar si esta página es igual a wp-login.php
    $page_viewed = basename( $_SERVER['REQUEST_URI'] );

    // Enlace permanente a la página de inicio de sesión personalizada
    $login_page  = get_permalink( 'CUSTOM_LOGIN_PAGE_ID' );

    if( $page_viewed == "wp-login.php" ) {
        wp_redirect( $login_page );
        exit();
    }
}

add_action( 'init','redirect_login_page' );
29 ene 2014 09:13:46
Comentarios

gracias por tu ayuda. Tengo una cosa que preguntarte. He renombrado wp-login.php con el nombre del plugin wp-login.php. Entonces, ¿debo usar ese nombre renombrado en ese código o wp-login?

user3187719 user3187719
29 ene 2014 09:21:44

Por favor, nunca hagas cambios en los archivos principales, ya que perderás todos esos cambios al actualizar y wp-login.php es un archivo principal

Maruti Mohanty Maruti Mohanty
29 ene 2014 09:23:05

No, solo lo hice con un plugin. Cuando desactivo el plugin, se restaura a la normalidad. Así que por favor dime qué debo usar, el wp-login.php renombrado o wp-login.php.

user3187719 user3187719
29 ene 2014 09:27:56

No estoy seguro de lo que estás diciendo, pero la línea base es que deberías hacer tu mejor esfuerzo para no modificar los archivos núcleo.

Maruti Mohanty Maruti Mohanty
29 ene 2014 09:30:08

Todavía no estoy seguro de cuál es la confusión, has pegado el mismo código que yo he puesto como respuesta

Maruti Mohanty Maruti Mohanty
29 ene 2014 09:38:02

¿Puedo ponerlo así? function redirect_login_page(){ // Store for checking if this page equals wp-login.php $page_viewed = basename( $_SERVER['REQUEST_URI'] ); // permalink to the custom login page $login_page = get_permalink( 'CUSTOM_LOGIN_PAGE_ID' ); if( $page_viewed == "mylogin" ) { wp_redirect( $login_page ); exit(); } } add_action( 'init','redirect_login_page' ); Donde 'mylogin' es el que he renombrado. Lo siento, el anterior fue por error.

user3187719 user3187719
29 ene 2014 09:39:35

Aparentemente, al usar esto, si rediriges wp-login a una página con un formulario de inicio de sesión en el front-end, no podrás iniciar sesión allí. Parece que WP queda atrapado en un bucle, una vez que envías el inicio de sesión, simplemente actualiza la página

zok zok
21 jun 2016 19:27:35
Mostrar los 2 comentarios restantes