如何限制整个WordPress网站的访客,但注册和登录页面


How to restrict an entire WordPress site to visitors, but the register and login page?

限制网站,但登录和注册页面


我希望我的我的整个WordPress网站被限制为访问者,但我希望注册和登录页面是可访问的(不受限制)的访问者


由于我的网站是一个会员制网站,我想限制它的访问,使访问者只能看到2页,登录页和注册页。

我已经尝试了多个插件做到这一点,但不幸的是,对我来说,我还没能找到正确的一个。有些插件将整个网站重定向到一个页面,而其他插件需要为每个页面单独添加自定义重定向设置。

我想要的:-

  1. 通过重定向限制整个WordPress网站的访问者
  2. 不限制2个页面,登录页面和注册页面
  3. 将用户重定向到登录页面和/或注册页面

在我的登录页面中有一个查看注册页面的选项。
我希望这两个页面都是可访问的访问者和网站的其余部分是不可访问的

您可以简单地使用template_redirect钩子重定向用户

add_action( 'template_redirect', 'redirect_users' );
function redirect_users( $template ) {
    if ( !is_user_logged_in() ) {
        if ( !is_page( 'register page ID' ) ) {
            wp_redirect( wp_login_url() );
        }
    }
    return $template;
}

需要在函数中添加注册id、登录页面id和登录页面URL。