IS_USER_LOGGED_IN无法仅重定向已注销的用户

时间:2015-07-22 作者:ineedhelp

所以我的函数中有下面的代码。php文件。它适用于已注销的用户,但也重定向已登录的用户。有人能帮忙吗?

add_action( \'template_redirect\', \'redirect_to_specific_page\' );
function redirect_to_specific_page() {
    if ( is_paged() || is_author() || is_single()  && ! is_user_logged_in() ) {
        wp_redirect( \'http://www.exampleblog.net/members-only/\', 301 );
        exit;
    }
}
我用它将所有注销的用户重定向到一个页面,告诉他们必须登录才能查看其他页面(第2页、第3页等等。还有,当他们单击作者名称时,不要查看作者的页面和存档)。

1 个回复
SO网友:Adam

你需要把前三个包起来|| 附加括号中的条件,以便首先对其求值BEFORE 最后一个&& 条件:

Psuedocode example:

    here                               here 
     ↓                                  ↓  
if ( (condition || condtion || condition) && ! condition ) {
    //do business logic...
}

This now means that:

如果有的话ONE 属于is_paged() OR is_author() OR is_single() IS true THEN 评估第二个条件! is_user_logged_in()

In your original code:

前三个条件没有附加括号,IF 这四个条件中的任何一个返回true 然后,您将重定向用户,无论他们是否登录。

Final code with additional parentheses:

add_action( \'template_redirect\', \'redirect_to_specific_page\' );

function redirect_to_specific_page() {   
    if ( (is_paged() || is_author() || is_single()) && ! is_user_logged_in() ) {
        wp_redirect( \'http://www.exampleblog.net/members-only/\', 301 ); exit; 
    } 
}

结束

相关推荐

防止“/LOGIN”重定向到“/wp-LOGIN”

一位客户要求我排除“/登录”,因为他们希望有url指向其他地方(远程系统)。键入此url时,它会自动重定向到“/wp login”。如何删除/防止此问题?