WordPress子比主题给文章分类设置访问权限功能代码

介绍

高级的文章分类权限功能,可选权限类型有:注册用户可见、所有会员可见、二级会员可见。

WordPress子比主题给文章分类设置访问权限功能代码

一、子比主题根目录下func.php或functions.php中插入以下代码(代码中的noauth.svg请自行替换,路径也可自行指定)

//指定文章分类设置可见权限开始
function zuoxm_cat_login_show($content){
if (_pz('ZUOXM_LOGIN_SHOW_OPEN')){
$category_ids = _pz('ZUOXM_LOGIN_SHOW_CAT_OBJ');
if (empty($category_ids)) {
// 如果分类ID数组为空,则不执行任何操作
return $content;
}
$page_link = get_permalink( $page_id );
$type=_pz('ZUOXM_LOGIN_SHOW_TYPE');
$type_text = array(
'vip1' => _pz('pay_user_vip_1_name') .'及'._pz('pay_user_vip_2_name'). '可见',
'vip2' => '仅'._pz('pay_user_vip_2_name') . '可见',
);
$user_id = get_current_user_id();
if (is_single() && has_category($category_ids)) { // 检查文章是否属于这些分类
switch ($type){
case 'reg_user' :
if (!is_user_logged_in()) {
$content = '<div class="f404">
<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/img/noauth.svg"><div class="hidden-box"><a class="hidden-text signin-loader" href="javascript:;"><i class="fa fa-exclamation-circle"></i> 本文仅【注册用户】查看,' . $type_text['vip' . $vip_l] . '<br><i class="fa fa-sign-in"></i> 请登录或注册后查看</a></div></div>';
}
break;
case 'vip1' :
case 'vip2' :
$vip_level = (int) zib_get_user_vip_level($user_id);

if ('vip1' == $type) {
$vip_l = 1;
} else {
$vip_l = 2;
}
if ($user_id > 0) {
if (!$vip_level) {
$content = '<div class="f404">
<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/img/noauth.svg"><div class="hidden-box"><a class="hidden-text pay-vip" vip-level="' . $vip_l . '" href="javascript:;"><i class="fa fa-exclamation-circle"></i> 本文仅【<span style="font-weight:bold;color:green;">' . $type_text['vip' . $vip_l] . '</span>】<br><i class="fa fa-diamond"></i> 请<span style="font-weight:bold;color:#2750e5;">开通会员</span>后查看</a></div></div>';
} elseif ($vip_level < $vip_l) {
$content = '<div class="f404">
<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/img/noauth.svg"><div class="hidden-box"><a class="hidden-text pay-vip" vip-level="' . $vip_l . '" href="javascript:;"><i class="fa fa-exclamation-circle"></i> 本文仅【<span style="font-weight:bold;color:#2750e5;">' . $type_text['vip' . $vip_l] . '</span>】<br><i class="fa fa-diamond"></i> 请升级会员后查看</a></div></div>';
}
} else {
$content = '<div class="f404">
<img src="' . ZIB_TEMPLATE_DIRECTORY_URI . '/img/noauth.svg"><div class="hidden-box"><a class="hidden-text signin-loader" href="javascript:;"><i class="fa fa-exclamation-circle"></i> 本文仅【<span style="font-weight:bold;color:#2750e5;">' . $type_text['vip' . $vip_l] . '</span>】<br><i class="fa fa-sign-in"></i> 请登录后查看特权</a></div></div>';
}
break;
}
}

return $content;
}
}
add_filter('the_content', 'zuoxm_cat_login_show');
//指定文章分类设置可见权限结束

二、后台选项(可放到func.php中)

CSF::createSection($prefix, array(
'parent' => 'ZUOXM_CUSTOMIZE',
'id' => 'ZUOXM_QTMH',
'title' => '其它杂项美化',
'icon' => 'fa fa-fw fa-windows',
'description' => '',
'fields' => array(
array(
'id' => 'ZUOXM_LOGIN_SHOW_OPEN',
'type' => 'switcher',
'title' => '文章分类登录可见开关',
'label'=>'是否启用登录可见功能开关',
'desc' => '打开开关就启用指定文章分类登录可见',
'default' => '0',
),
array(
'dependency' => array('ZUOXM_LOGIN_SHOW_OPEN', '!=', ''),
'id' => 'ZUOXM_LOGIN_SHOW_TYPE',
'type' => 'radio',
'inline' => true,
'title' => '可见用户级别',
'subtitle'=>'选择可见用户级别',
'desc' => '设置可见用户的级别',
'default' => 'reg_user',
'options' => array(
'reg_user' => __('注册用户可见'),
'vip1' => __('所有会员可见'),
'vip2' => __('二级会员可见'),
),
),
array(
'dependency' => array('ZUOXM_LOGIN_SHOW_OPEN', '!=', ''),
'id' => 'ZUOXM_LOGIN_SHOW_CAT_OBJ',
'title' => '选择需限制的文章分类',
'default' => '',
'class' => 'compact',
'desc' => '选择加入登录可见的文章分类,注意没有文章的分类不会显示',
'placeholder' => '选择加入登录可见的文章分类',
'options' => 'categories',
'type' => 'select',
'chosen' => true,
'multiple' => true,
'sortable' => true,
),
),

如果你之前没用过我的自定义后台选项代码,那么还需要在上述代码之前插入下面的代码

$prefix = 'zibll_options';//如果是子比7.7以下的则本行可不写,但写了也没问题
//CSF后台选项开始 zuoxm
CSF::createSection($prefix, array(
'id' => 'ZUOXM_CUSTOMIZE',
'title' => '工具箱&美化',
'icon' => 'fa fa-fw fa-puzzle-piece',
));
温馨提示:本站提供的一切软件、教程和内容信息都来自网络收集整理,仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,版权争议与本站无关。用户必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解! 联系邮箱:lgg.sinyi@qq.com

给TA打赏
共{{data.count}}人
人已打赏
分享B2主题美化包、B2 pro主题美化包、B2子主题

B2主题添加彩色文字框效果

2025-10-7 16:34:03

其他媒体

带你解锁知乎副业新姿势,每天几分钟轻松实现日入10+,快来薅羊毛!

2025-8-13 14:50:04

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索