is_user_logged_in与wp_redirect冲突

时间:2018-01-02 14:10:57

标签: php wordpress wordpress-theming custom-wordpress-pages

我正在尝试隐藏未登录用户的自定义帖子类型单页。我使用了钩子template_redirect,如下所示:

add_action('template_redirect','hide_single_property');
function hide_single_property()
{
    if( is_singular('property') || is_page('dashboard')):
        if( ! is_user_logged_in() ):
            wp_redirect(get_permalink(103),302);
            exit;
        endif;
    endif;      
}

上面的代码有效,但有一些问题。就像我尝试访问http://example.com/property/abc一样,它会重定向到登录页面。登录后,如果我尝试访问同一个帖子,它会再次重定向回登录页面,但是可以与其他属性一起使用。

它只是在登录之前加载网址:(

1 个答案:

答案 0 :(得分:0)

如果它只是你试图隐藏的单个帖子,你可以将以下内容添加到你的sinlge-property.php模板文件中:

if ( is_user_logged_in() ) { 
   //your content file 
     get_template_part('content'); 
} 
else {
   //show login page  
     get_template_part('must-login'); 
}