为 WordPress 增加只有特定的 VIP 角色的用户才可以阅读某些内容的功能
文 / @UTHEME
小本本的WordPress教程
在一些以内容为主的网站上,往往有一些仅限于高级用户才可以查看的内容。比如我们常说的VIP用户。在程序中,这种逻辑很容易实现,只需要判断用户的角色或权限是否满足条件,满足则显示内容,不满足则隐藏。
WordPress提供了比较完善的角色和权限系统,同时还有方便的API可以自定义角色和权限。本教程将简单介绍如何通过WordPress的角色和权限API来添加用户角色,并使某些内容仅对VIP用户可见。
基于现有角色创建VIP角色
我们可以使用WordPress的角色和权限API创建一个新的用户角色,也可以在现有角色的基础上创建一个新角色。由于我们需要的新角色与WordPress内置角色略有不同,为了减少代码量,本文使用了现有角色的复制功能来创建新角色。
// 创建VIP用户角色
add_action('admin_init','remove_shop_caps');
function remove_shop_caps(){
//首先获取订阅者角色。
$subscriber = get_role('subscriber');
//然后基于订阅者角色的权限新建一个角色。
$vip = add_role('vip', 'VIP用户', $subscriber->capabilities);
$vip = get_role('vip');
//移除新角色的一些不需要的权限。
$vip->add_cap('read_vip_content');
}
将上面的代码添加到主题的functions.php文件中后,在仪表盘的编辑用户界面中,“VIP用户”将出现在可选角色列表中。
创建仅限VIP用户阅读的短代码
在创建了新的用户角色后,我们接下来需要做的是添加仅限于VIP用户阅读的内容。为此,我们使用了短代码的方式来实现这个功能。
/*设置仅限VIP用户阅读的短代码*/
if(!function_exists('shortcode_vip_content')){
function shortcode_vip_content($atts){
$default = array(
'content' => 'VIP用户可以查看的内容',
);
extract(shortcode_atts($default, $atts));
if(current_user_can('read_vip_content')){
$retour = $content;
}else{
$retour = "你不是VIP,你不能查看这些内容。";
}
return $retour;
}
}
add_shortcode('vip_content', 'shortcode_vip_content');
当我们添加仅限VIP用户阅读的文章时,我们只需在文章中添加短代码vip_content="仅供VIP用户阅读的内容"
,即可实现只有VIP用户可见的内容。为了方便操作,我们还可以使用shortcake插件向文章发布页面添加短代码UI,但这已超出了本文的讨论范围,有兴趣的朋友可以自行尝试。

相关文章
-
盘点2023年依然好用的4款WordPress轻社区主题 2023-05-29 08:00:54
-
盘点2023年最好用的三款wordpress知识库主题 2023-05-29 08:00:26
-
个人网站选择WordPress还是Typecho? 2023-05-28 23:33:13
-
wordpress建外贸B2C独立站的五大优势 2023-05-28 23:05:49
-
盘点2023年依然好用的3款wordpress文档主题 2023-05-28 23:02:19
-
盘点2023年依然好用的3款wordpress外贸网站主题 2023-05-28 22:59:41
-
盘点2023年依然好用的3款wordpress电商主题 2023-05-28 22:56:05
-
wordpress后台地址是多少(附:后台地址修改教程) 2023-05-28 22:54:15
-
盘点2023年依然好用的3款wordpress笔记主题 2023-05-28 22:51:13
-
开源wordpress主题:kratos 介绍 2023-05-28 22:47:46