分享WP资源
是件美好的事情

WordPress如何设置强制登录否则无法查看网站

腾讯云限时秒杀活动

如果网站内容只希望注册用户浏览,对其他所有人隐藏,浏览者未登录访问直接跳转到登录注册页面,可以用下面的代码实现。

将下面代码添加到当前主题函数模板functions.php中:

代码一 未登录访问网站直接跳转到默认登录页面。

	add_action( 'wp', 'login_access' );
	function login_access() {
		global $pagenow;
		if( !is_user_logged_in() && $pagenow != 'wp-login.php' )
		auth_redirect();
	}

代码二 未登录访问网站,可以302跳转到自定义的页面。

add_action( 'template_redirect', 'zm_force_login' );
function zm_force_login() {
	// 判断登录
	if ( ! is_user_logged_in() ) {
		// 判断HTTPS
		$schema = isset( $_SERVER['HTTPS'] ) && 'on' === $_SERVER['HTTPS'] ? 'https://' : 'http://';
		// 判断站内链接
		$url = $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
		// 添加白名单
		$allowed = apply_filters_deprecated( 'zm_force_login_whitelist', array( array( '允许访问的链接1', '允许访问链接2' ) ), '1.0', 'zm_force_login_bypass' );
		$bypass = apply_filters( 'zm_force_login_bypass', in_array( $url, $allowed ), $url );
		if ( preg_replace( '/\?.*/', '', $url ) !== preg_replace( '/\?.*/', '', wp_login_url() ) && ! $bypass ) {
			// 防止缓存
			nocache_headers();
			// 跳转的页面链接
			$page = '跳转到的页面链接';
			// 执行302跳转
			wp_safe_redirect( $page, 302 );
			// 跳转到默认登录页面
			// wp_safe_redirect( wp_login_url(), 302 );
			exit;
		}
	}
}

注:跳转的页面链接要同时加到白名单中,否则会形成死循环。

代码取自:Force Login

描述

通过要求访问者首先登录,可以轻松地将WordPress网站隐藏起来,以防止公众查看。就像拨动开关一样简单。

在准备好公开共享之前,将您的网站设为私有,或者仅对成员开放。

特征

  • WordPress多站点兼容。
  • 登录将访问者重定向回他们尝试访问的URL。
  • 广泛的开发人员API(挂钩和过滤器)。
  • 可定制的。设置一个特定的URL,以便始终在登录时重定向到该URL。
  • 过滤某些页面或帖子的例外。
  • 将REST API限制为经过身份验证的用户。
  • 具备翻译准备和WPML认证。
 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:莲花不妖 » WordPress如何设置强制登录否则无法查看网站
分享到: 生成海报

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录