2014-04-07 21 views
5

Mam stronę wp i staram się zmusić gościa do zalogowania/rejestracji przed wyświetleniem tylko POJEDYNCZYCH POSTÓW (nie stron, archiwów itp.).WordPress Login Login Przekierowanie do postów

mam tej funkcji:

// 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'); 

Problem z tej funkcji jest to, że przekierowuje gości, aby zalogować się, kiedy przeglądać dowolną stronę/post/etc. Czy ktoś może mi pomóc zmodyfikować tę funkcję, aby przekierować tylko podczas oglądania pojedynczych postów? Dzięki Iasmina

Odpowiedz

10

Spróbuj:

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

doskonały. To działa jak urok. wielkie dzięki! – user3507955

+0

Wspaniale, nie zapomnij przyjąć mojej odpowiedzi, klikając znaczek po lewej stronie! –

0

Dodaj kolejny tag warunkową if

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

is_single()

+0

Należy również sprawdzić, czy jego strona główna lub nie, jak on musi przekierować tylko w przypadku strony postu! –

+0

Nie do końca prawda, 'is_single' zwraca wartość true tylko wtedy, gdy wyświetlany jest pojedynczy post dowolnego typu, z wyjątkiem typów załączników i typów stron. – DNACode