2014-04-07 13 views
5

Ho un sito wp e cerco di forzare gli ospiti ad accedere/registrarsi prima di visualizzare solo POSTI SINGOLI (non pagine, archivi, ecc.).Wordpress Guest Login Reindirizza i messaggi in vista

Ho questa funzione:

// Redirect users who arent logged in... 
function login_redirect() { 

    // Current Page 
    global $pagenow; 

    // Check to see if user in not logged in and not on the login page 
    if(!is_user_logged_in() && $pagenow != 'wp-login.php') 
      // If user is, Redirect to Login form. 
      auth_redirect(); 
} 
// add the block of code above to the WordPress template 
add_action('wp', 'login_redirect'); 

Il problema di questa funzione è che reindirizza ospite il login quando visualizzano qualsiasi pagina/post/etc. Qualcuno può aiutarmi a modificare questa funzione per reindirizzare solo sulla visualizzazione di singoli post? Grazie, Iasmina

risposta

10

Prova questo:

function login_redirect() { 
    // Current Page 
    global $pagenow; 

    // Check to see if user in not logged in and not on the login page 
     if (!is_user_logged_in() && $pagenow != 'wp-login.php' && is_single() && !is_home()) {    
    auth_redirect(); 
     } 
} 

// add the block of code above to the WordPress template 
add_action('wp', 'login_redirect'); 
+0

perfetto. Esso funziona magicamente. molte grazie! – user3507955

+0

Ottimo, non dimenticare di accettare la mia risposta cliccando sul segno di spunta a sinistra! –

0

Aggiungi un altro tag condizionale per l'istruzione if

if(!is_user_logged_in() && $pagenow != 'wp-login.php' && is_single()) 

is_single()

+0

È inoltre necessario verificare se la sua home page o meno come lui ha bisogno di reindirizzare solo in caso di una pagina di post! –

+0

Non completamente vero, 'is_single' restituisce true solo se viene visualizzato un singolo post di qualsiasi tipo di messaggio, ad eccezione dell'allegato e dei tipi di post della pagina. – DNACode

Problemi correlati