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).
- Jerarquía de plantillas
- Etiquetas condicionales
- 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:
- Encabezado – PHP
- 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.