2011-12-19 19 views
8

En wordpress estoy tratando de forzar el inicio de sesión del usuario antes de ver nada. Significa que quiero que mi usuario inicie sesión por primera vez para ver cualquier página, publicación o archivo y solo ellos pueden ver la página de preguntas frecuentes. Estoy intentando con el código a continuación, pero el problema es que tan pronto como ingresé, me redirigen de nuevo a la página de inicio de sesión.Wordpress fuerza al usuario para iniciar sesión antes de ver cualquier contenido del sitio

Sin embargo, mi estructura del sitio sería como continuación y en la misma manera que quiero que este código funcione ...

pantalla
// Force user to login on welcome 
function my_force_login() { 
global $post; 

    if (is_single() || is_front_page() || is_page() && !is_page('login') && !is_user_logged_in()){ 
     auth_redirect(); 
    } 
} 

Welcomd de inicio de sesión (como Facebook) página -Inicio -Blog -About -Contacto -FAQ

así que quiero para permitir visitante sólo puede ver la pantalla Inicio de sesión de bienvenida y FAQ, página de contacto para ver resto del sitio que quiero obligarlos a Login ..

Necesito una gran ayuda de su gente .. Muchas gracias por adelantado ...

Respuesta

8

creo que se echa en falta un paréntesis:

if ((is_single() || is_front_page() || is_page()) 
     && !is_page('login') && !is_user_logged_in()){ 
    auth_redirect(); 
} 
+0

Muchas gracias. Funciona como el encanto. Acabo de agregar is_archive() para evitar la categoría y la lista de archivos. Muchas gracias. Volveré si necesito más ayuda para lo mismo ... Gracias de nuevo –

1

Hay un complemento que puede usar para esto. Private Only

+0

Privet sólo funcionará si quiero usar wp-login.php y no mi propia página de inicio de sesión. Aquí quiero usar la pantalla de inicio de sesión como la pantalla de inicio de sesión de mi tema, así que estoy usando '! Is_page ('login')' Ese complemento sigue en curso al redirigir el bucle ... porque tengo mis propios redireccionamientos después del inicio de sesión y etc. –

+0

Gracias .. exactamente lo que quería – Christine

1

Una forma sencilla de

// Require login for site 
get_currentuserinfo(); 
global $user_ID; 
if ($user_ID == '') { 
    header('Location: /wp-login.php'); exit(); 
} 
+0

Parece limitado. Solo puede usar esto en plantillas, no en todo el sitio ya que podría causar un bucle. – Jake

Cuestiones relacionadas