文章简介
文章可以单独给不同级别设置不同权限以此来达到营收或者流量等方式,但过于繁琐,每篇文章都需要设置,能不能直接设置几个分类来实现呢?
如下所说:
分类0加入游客可见权限
分类1加入登录查看权限(兼容游客)
分类2加入登录,黄金会员查看权限(兼容游客、登录)
分类3加入登录,黄金会员、钻石会员查看权限(兼容游客、登录、黄金会员)
可以实现:目前以提出需求,看老唐愿不愿意弄吧,不愿意弄可以先按照我的方法来试试:
先看效果图:
1,未登录状态访问黄金会员和钻石会员类目提示:
3,登录状态,已充值为黄金会员访问钻石会员界面提示:(访问黄金会员权限类目就没必要展示了已经正常访问了)
OK!接下来看教程
不啰嗦,直接走教程:
1,首先设置好分类,记住分类ID
2,在functions.php里添加如下代码:根据注释修改自己限制的分类ID
add_action( 'template_redirect', 'ashuwp_show_only_login', 0 ); function ashuwp_show_only_login(){ global $post; // 确保$post全局变量是可用的 // 假设zib_get_user_vip_level接受用户ID作为参数 $user_id = get_current_user_id(); // 获取当前用户的ID $vip_level = zib_get_user_vip_level($user_id); // 获取当前用户的VIP级别 // 判断登录,访问id为1的分类时会跳到111.php文件 if( in_category( array( 1865 ) ) && !is_home() && $vip_level < 1 ){ $template = locate_template( '111.php' ); // 使用locate_template查找模板文件 if ( $template ) { include( $template ); // 包含找到的文件 } else { // 如果没有找到模板文件,可以做一些备选操作,例如重定向或显示错误信息 wp_die( 'VIP模板文件未找方法到。' ); } exit; // 退出脚本执行 } // 判断登录,访问id为4的分类时会跳到222.php文件 if( in_category( array( 4 ) ) && !is_home() && $vip_level < 2 ){ $template = locate_template( '222.php' ); // 使用locate_template查找模板文件 if ( $template ) { include( $template ); // 包含找到的文件 } else { // 如果没有找到模板文件,可以做一些备选操作 wp_die( 'VIP模板文件未找到。' ); } exit; // 退出脚本执行 } }
假设 111.php
文件位于主题根目录,那就是这个代码
在使用 locate_template
函数时,您不需要提供完整的文件路径,因为它会在当前激活的主题的目录结构中进行搜索。locate_template
函数默认会在主题根目录、子目录以及父级主题的目录中搜索指定的模板文件。
该教程适用其他主题,只要改zib_get_user_vip_level($vip_level)<1)
这个为对应的就行了。
注意事项:
以上级别对应的是黄金会员或钻石会员以及登录状态,子比主题里有账号等级之分,这个是评论等提示出来的,如果需要这样的级别来区分的话,只需要改下里面的级别识别代码就行了。
觉得不错的赞助个万儿八千的吧O(∩_∩)O哈哈~!!