介绍
高级的文章分类权限功能,可选权限类型有:注册用户可见、所有会员可见、二级会员可见。
一、子比主题根目录下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', ));