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

时间:2016-10-29 作者:OmarQaziDev

限制网站,但登录和注册页面我希望我的整个WordPress网站仅限访问者访问,但我希望访问者可以访问(不受限制)注册和登录页面,因为我的网站是一个仅限成员访问的网站,我想限制其访问权限,以便访问者只能看到两个页面,即登录页面和注册页面。

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

What I want:-

  1. Restrict entire WordPress website to visitors by redirection.
  2. Do not restrict 2 pages, Login Page and Registration Page.
  3. Redirect Users to Login Page and/or Register Page.
我的登录页面中有一个选项可以查看注册页面
我希望访问者可以访问这两个页面,并且无法访问网站的其余部分。

3 个回复
SO网友:Prasad Nevase

以下代码将与WordPress默认登录/注册屏幕配合使用:

add_action( \'wp\', \'member_only_site\' );
function member_only_site( ) {
    if ( ! is_user_logged_in( ) ) {
          auth_redirect();
    }
}

SO网友:BlackOut

一种可能的替代方案:

global $pagenow;

$accessible_pages = array(\'wp-login.php\', \'wp-login.php?action=register\');

if ( !is_user_logged_in() && !in_array($pagenow, $accessible_pages) && !is_admin() ) {
    auth_redirect();
}
您可以在数组“accessible\\u pages”中插入希望访问者可以公开访问的页面(用逗号分隔),避免每次加载页面时重定向到登录页面。

SO网友:Kanon Chowdhury

try this code

function redi() {
global $pagenow;
if (!is_user_logged_in() && $pagenow != \'wp-login.php\' && $pagenow !=\'wp-login.php?action=register\') {
wp_redirect(\'wp-login.php?action=register\');
}}  add_action(\'template_redirect\', \'redi\');