2014-04-07 14 views
5

Ich habe eine WP-Site und ich versuche, Gast zu zwingen, sich anzumelden/registrieren, bevor Sie nur Single-Posts. (Nicht Seiten, Archive usw.).Wordpress Guest Login Redirect auf Posts

Ich habe diese Funktion:

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

Das Problem mit dieser Funktion ist, dass sie Gast umleitet anmelden, wenn sie jede Seite anzeigen/Post/etc. Kann mir jemand helfen, diese Funktion zu modifizieren, um nur beim Anzeigen einzelner Beiträge umzuleiten? Danke, Iasmina

Antwort

10

starten:

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

perfekt. es wirkt wie ein Zauber. Danke vielmals! – user3507955

+0

Toll, vergessen Sie nicht, meine Antwort zu akzeptieren, indem Sie auf das Häkchen auf der linken Seite klicken! –

0

weiteren hinzufügen bedingten Tag auf die if-Anweisung

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

is_single()

+0

Sie müssen auch wenn seine Homepage überprüfen oder nicht, als er muss nur im Falle einer Post-Seite umgeleitet werden! –

+0

Nicht ganz zutreffend, das 'is_single' gibt nur dann true zurück, wenn ein einzelner Beitrag eines beliebigen Posttyps mit Ausnahme von Anhangs- und Seitenpostentypen angezeigt wird. – DNACode