如何阻止未登录的用户访问博客页面?

时间:2018-08-11 作者:Dirk

我的博客页面[is\\u home()]位于/blog。我的静态页面[is\\u frontpage()]不是博客页面,位于/关于我们。

对于未登录的用户,起始页是静态页。对于登录的用户,起始页是blogpage。

到目前为止还不错。但我想限制未登录的用户访问博客页面的内容。如果用户没有登录,他总是可以通过链接www.mypage访问博客页面。com/博客

我尝试了以下代码:

add_action ( \'template_redirect\', \'redirect_my_homepage\' );
function redirect_my_homepage(){
if ( is_home() && !is_user_logged_in() ) {
        wp_redirect(\'http://www.mypage.com\') ;
        exit();
    }
}
但这会阻止用户登录,因为登录的用户将自动重定向到blogpage->代码会将用户重定向回静态页面并阻止登录。

因此,我正在寻找一段代码来阻止未登录用户访问博客页面。

1 个回复
SO网友:Max

你可以这样做

function block_access() {
  if (is_page (blog) && !is_user_logged_in ()) {
    $loginUrl = home_url(\'/login-page/\');
    wp_redirect($loginUrl);
    exit(); 
  }
}
add_action( \'template_redirect\', \'block_access\' );

结束

相关推荐

FrontPage管理栏消失

我在一个多站点网络上。最近,我的frontpage管理栏消失了,但仍在后端显示。我禁用了所有插件,将主题也更改为210和212,但没有成功。但当我将插件文件夹的名称更改为其他名称时,它开始显示,但当我在不更改插件文件夹名称的情况下停用所有插件时,它不会显示。我认为网络禁用所有插件和/或更改插件文件夹名称是同一回事,所以它应该通过两种方式工作。但管理栏只显示当我将插件文件夹名称更改为其他名称时,而不是通过禁用网络范围内的所有插件。请尽快帮助。