网站建设——如何让wordpress所有页面只有会员才可以访问

李飞博客
李飞博客
李飞博客
961
文章
6
评论
2021年2月1日11:22:50
评论
39 1066字阅读3分33秒

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

 

将下面代码添加到当前主题函数模板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

另一款类似的插件:Registered Users Only

weinxin
我的微信
把最实用的经验,分享给最需要的读者,希望每一位来访的朋友都能有所收获!
李飞博客
  • 本文由 发表于 2021年2月1日11:22:50
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
实用工具

92充100话费充值方法

92元充100元话费,话费项目优惠渠道项目0投入易上手 三网半价话费充值,话费半价,每天大量活动,省到就是赚到   100元话费只需92,话费优惠渠道项目0投入易上手 目前这样的项目不多,也...
实用工具

万能视频解析去水印网站,去水印工具

免费去水印小程序,不收费,不限次数,永久免费,先给大家推荐一个去水印的小工具。如果你觉得我的文章有用,可以分享给身边的朋友。 方案一:微信搜索小程序:李飞去水印 解析:李飞去水印与其他去水印小程序的区...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: