纯代码实现WordPress文章内容隐藏设置VIP用户可见方法,类似 Erphpdown 会员插件系统,因为亿破姐网站不喜欢使用那些花里胡哨的的插件,erphpdown 就有很多不必要的功能,个人感觉就是累赘,多余的功能影响网站的加载速度,所以在网上找了一份代码可以实现WordPress文章内容隐藏设置VIP用户可见,话不多说,下面给大家贴上代码。
一、文章内容隐藏代码
把下面代码复制到主题文件的 functions.php 中保存
add_shortcode( 'vipp', 'users_read_shortcode' ); function users_read_shortcode( $atts, $content = null ) { if ( is_user_logged_in() && !empty( $content ) && current_user_can( 'read' ) ) { return $content; } if ( !is_user_logged_in()){ return '温馨提示:此处内容需要登录后才能查看!'; } if ( is_user_logged_in() && !current_user_can( 'read' )){ return '温馨提示:此处内容您暂时还没有权限查看,请联系管理员升级您的用户权限!'; } }
二、代码使用方法
在编辑文章的时候在使用以下代码设置隐藏内容(代码中的【 改成 [ )如果我写[ ]会自动隐藏,所以【 代替
【vipp] 这是隐藏的内容 【/vipp]
如果嫌弃麻烦的可以直接传统编辑器添加一个 “VIP用户可见” 按钮(代码中的【 改成 [ ),古腾堡编辑器同学爱莫能助了,以下代码直接复制到 functions.php 文件中保存
function appthemes_add_vipp() { ?> <script type="text/javascript"> if ( typeof QTags != 'undefined' ) { QTags.addButton( 'vipp', 'VIP用户可见', '【vipp]','【/vipp]' ); } </script> <?php } add_action('admin_print_footer_scripts', 'appthemes_add_vipp' );
三、设置VIP用户组 // 调整用户的用户组
1、因为WordPress默认注册用户都是有 read 读权限的,我们需要设置一个VIP用户组,不给该角色赋予读权限,以下代码直接复制到 functions.php 文件中保存
//添加普通用户组 add_role('pt_user', '普通用户', array( 'read' => false, //读权限 'edit_posts' => false,//编辑权限 'delete_posts' => false, //删除权限 ));
2、把所有的订阅者转换为普通用户
后台 > 用户 > 把角色批量变更为普通用户
这个订阅者才是VIP用户组,订阅者才能阅读我们代码vipp隐藏的内容,普通用户无法阅读,简简单单就完成了WordPress文章VIP用户的设置
最后 WordPress 后台里选择 “设置” > “常规” > “新用户默认角色” 设置默认普通用户组
温馨提示: 应版权方要求,违规内容链接已处理或删除!
下面的代码与上面无关,仅仅为记录一下
1、WordPress 修改用户角色
以修改“订阅者”为“设计师”为例,复制下面的代码到 wordpress 主题的 functions.php 文件中。
//WordPress 修改用户角色 add_action('init', 'fanly_change_role_name'); function fanly_change_role_name() { global $wp_roles; if ( ! isset( $wp_roles ) )$wp_roles = new WP_Roles(); $wp_roles->roles['subscriber']['name'] = '设计师'; $wp_roles->role_names['subscriber'] = '设计师'; }
对照修改第 6、7 行中你想要编辑的角色英文名称(小写字母)所对应的中文名称,保存即可,之后,新增用户时,在角色选择中可以看到你所修改的用户角色的新名称。
2、WordPress 添加用户角色
将下面的代码添加到当前主题的 functions.php ,就可以添加一个名为 “自定义角色” 的用户角色,其中 custom_role 为用户因为标识,不可以重复
//WordPress 添加用户角色 add_role('custom_role', '自定义角色', array( 'read' => true, //阅读权限,true 表示允许 'edit_posts' => true,//编辑文章的权限,true 为允许 'delete_posts' => false, //删除文章的权限,false 表示不允许删除 ));
3、WordPress 删除用户角色
复制如下代码到 wordpress 主题的 functions.php 文件中:
//WordPress 删除用户角色 remove_role( 'contributor' );//投稿者 remove_role( 'subscriber' );//订阅者 remove_role( 'author' );//作者 remove_role( 'editor' );//编辑