WordPress 装逼模式|特定的 VIP用户才可以阅读某些内容的功能

WordPress 装逼模式|特定的 VIP用户才可以阅读某些内容的功能

前言:

在一些以内容为主的网站上,经常会有一些内容需要用户具有一定的级别才能查看,比如我们经常说的VIP用户。在程序上,实现类似功能的逻辑很简单,就是判断一下当前用户的角色或者权限,如果当前用户为某种角色的用户,或者满足某些权限,就显示这些内容给用户,反之则隐藏。

WordPress为我们提供了相对完善的角色和权限系统,并提供了非常方便的API以方便我们添加自定义的角色和权限。今天我为大家简单的说明一下怎样通过WordPress的角色和权限API来添加用户角色,并限制某些内容只有VIP角色的用户才能访问。

这儿是代码:

基于现有角色新建 VIP 角色

我们可以通过WordPress的角色和权限API创建一个全新的用户角色,也可以通过复制现有角色,在现有角色的基础上创建一个新角色。因为我们需要新建的角色和WordPress内置的角色只是略有不同,在这里,为了减少代码量,我们选择通过复制现有角色的方式创建新角色。

  1. // 新建VIP用户角色
  2. add_action( ‘admin_init’, ‘remove_shop_caps’);
  3. function remove_shop_caps() {
  4.     // 首先获取订阅者角色。
  5.     $subscriber = get_role(‘subscriber’);
  6.     // 然后基于订阅者角色的权限新建一个角色。
  7.     $vip = add_role(‘vip’,’VIP用户’,$subscriber->capabilities);
  8.     $vip = get_role(‘vip’);
  9.     // 移除新角色的一些不需要的权限
  10.     $vip->add_cap( ‘read_vip_content’ );
  11. }

把上面的代码添加到主题的functions.php文件中,然后再到仪表盘的编辑用户界面中看看,“VIP用户” 这个角色已经出现在了用户角色选择的表单中。

创建只有 VIP 可以阅读的简码

创建了新的用户角色,我们接下来需要做的就是添加只有VIP角色用户才可以阅读的内容。我们通过简码的方式来实现这个功能。

  1. /* 设置VIP可以阅读的简码 */
  2. if ( ! function_exists( ‘shortcode_vip_content’ ) ) {
  3.     function shortcode_vip_content( $atts ) {
  4.         $default = array(
  5.             ‘content’ => ‘VIP用户可以查看的内容。’,
  6.         );
  7.         extract( shortcode_atts( $default$atts ) );
  8.         if ( current_user_can(‘read_vip_content’) ){
  9.             $retour = $content;
  10.         } else {
  11.             $retour = “你不是VIP,你不能查看这些内容。”;
  12.         }
  13.         return $retour;
  14.     }
  15. }
  16. add_shortcode( ‘vip_content’, ‘shortcode_vip_content’ );

添加只有VIP角色才可以阅读的文章时,我们只需要添加简码vip_content="只有VIP用户才可以阅读的内容"到文章中,即可实现简码中的内容对普通用户隐藏,对VIP用户可见的功能。为了方便操作,我们还可以通过shortcake插件添加简码UI到文章发布页面,不过这已经超过了本文的范围,在这里就不多说了。又兴趣的朋友可以自己尝试添加。

写在后面:

谁说装逼一下就不行呢,不试一下怎么知道没有这样的受众呢。

本文参考于 https://www.wpzhiku.com/add-functions-that-some-content-only-vip-user-can-read/  ,若有任何来源问题,请联系QQ:1516677079 及时更正。

最有意思的设计站点


最好的UI素材库

我们极力推荐: