Saltar al contenido

Wordpress: ¿cómo redirigir a los usuarios que no han iniciado sesión a una página específica?

Después de de esta larga búsqueda de información pudimos resolver este rompecabezas que pueden tener algunos los lectores. Te regalamos la solución y esperamos resultarte de mucha ayuda.

Solución:

Aquí hay 2 ejemplos que deberá modificar ligeramente para que funcione para sus necesidades específicas.

add_action( 'admin_init', 'redirect_non_logged_users_to_specific_page' );

function redirect_non_logged_users_to_specific_page() 

if ( !is_user_logged_in() && is_page('add page slug or ID here') && $_SERVER['PHP_SELF'] != '/wp-admin/admin-ajax.php' ) 

wp_redirect( 'http://www.example.dev/page/' ); 
    exit;
   

Ponga esto en el archivo de funciones del tema de su hijo, cambie la ID de la página o el slug y la URL de redireccionamiento.

También podrías usar un código como este:

add_action( 'template_redirect', 'redirect_to_specific_page' );

function redirect_to_specific_page() 

if ( is_page('slug') && ! is_user_logged_in() ) 

wp_redirect( 'http://www.example.dev/your-page/', 301 ); 
  exit;
    

Puede agregar el mensaje directamente a la página o, si desea mostrar el mensaje para todos los usuarios que no hayan iniciado sesión, agréguelo al código.

http://codex.wordpress.org/Function_Reference/wp_redirect

Esto sería mejor:

if ( !is_user_logged_in() ) 
    auth_redirect();
 

// continue as normal for authenticated users

Lo que esto hace es redirigir al usuario a la página de inicio de sesión. Una vez que haya iniciado sesión, el usuario es redirigido a la página segura a la que intentaba acceder inicialmente.

Documentación aquí:

https://codex.wordpress.org/Function_Reference/auth_redirect

¿Cómo podemos decirte dónde ponerlo si no nos dijiste qué y dónde quieres mostrarlo? ¿Publicaciones completas? ¿Páginas? ¿Partes personalizadas de las páginas? Lo siento… Supongo que mi bola de cristal no funciona hoy.

Como eres, y te cito: “un novato en wordpress”, deberías aprender más que pedir una respuesta directa.

Como para donde debe leer el enlace de referencia 1. Esto le dirá en qué archivo necesita ponerlo.

Como para cómo para hacerlo, primero debe leer los enlaces de referencia 2 y 3.

En general, debería verse algo como esto:

if ( is_user_logged_in() ) 
    the_content();
 else 
    echo 'For members only';

Por supuesto, el código anterior debe entrar en un círculo. Puedes construirlo tan complejo o tan simple como quieras. Por ejemplo, en lugar de texto simple, si no ha iniciado sesión, puede mostrar un formulario de registro completo, por ejemplo, o, como sugeriría, una pantalla dividida donde el usuario puede iniciar sesión (ya que el usuario puede tener una cuenta pero se olvidó de iniciar sesión) o registrarse (si no tiene uno).

  1. Jerarquía de plantillas
  2. Etiquetas condicionales
  3. El lazo

Agregado después de los comentarios a continuación:

Para redirigir el uso header con el wp_login_url – nuevamente, verifique las referencias 1 y 2 a continuación:

if ( is_user_logged_in() ) 
    the_content();
 else 
    header('Location: ' . wp_login_url());

Referencia:

  1. Encabezado – PHP
  2. wp_login_url

Aquí tienes las comentarios y calificaciones

Si te apasiona la informática, puedes dejar una noticia acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *