wordpress实现分级会员不同权限的方法

 2014-09-11 06:25:23   评论   3,732次浏览

我们在使用wordpress做开发的时候,有时候想把自己的网站做成一个社区或者是商城,当然基于wordpress开发也是可以的,尤其是在遇到优惠和论坛权限的时候,难免会想让自己的网站能够实现论坛分级,这样的话我们应该如何编写基本的函数呢?

首先wordpresss给我们了十分完整的权限调用规则,在我们使用的时候可以在functions.php文件中添加对应的角色:

add_role('vipmember', 'VIP会员', array(
    'read' => true, //文章阅读权限
    'moderate_comments' => true, //编辑、删除、修改评论权限
    'edit_posts' => false //编辑文章权限
));
wordpress分级会员
【对应的权限函数】:
read 阅读文章
moderate_comments 管理评论
delete_posts 删除文章
edit_posts 编辑文章
delete_published_posts 删除已发布文章
publish_posts 发布文章
upload_files 上传文件
edit_published_posts 编辑已发布文章
read_private_pages 阅读私有页面
edit_private_pages 编辑私有页面
delete_private_pages 删除私有页面
read_private_posts 阅读私有文章
edit_private_posts 编辑私有文章
delete_private_posts 删除私有文章
delete_users 删除用户
edit_users 编辑用户
edit_themes 编辑主题
edit_plugins 编辑插件
在添加一个会员角色之后,我们可以在wordpress后台中看到这个函数的对应用户组,当然也可以再自己的wordpress设置中讲对应的用户组设置为注册用户的默认用户,比较令人头疼的是wordpress的角色的后台一直是个硬伤,每个用户登录后台之后如果在针对不同用户对后台进行单独的样式设计就会比较麻烦,整体来说wordpress可扩展性很强,但是毕竟相对于某些针对商城和房产、论坛之类的cms系统,如果使用wordpress进行二次开发很可能就会绕圈。
除了针对分级会员的固有函数之外,我们可以在wordpress本身编辑页面中添加附加函数,当然如果是针对VIP可以添加如下样式:
//获取访客VIP样式
function get_author_class($comment_author_email,$user_id){
global $wpdb;
$current_user; get_currentuserinfo();
$adminEmail = get_option('admin_email');
$author_count = count($wpdb->get_results(
"SELECT comment_ID as author_count FROM $wpdb->comments WHERE comment_author_email = '$comment_author_email' "));
if($comment_author_email ==$adminEmail) {
echo '<a class="vip" target="_blank" href="/vip/" title="俺就是博主好吧!"></a>';
}else{
if($user_id!=0)
echo '<a class="vip" target="_blank" href="/vip/" title="博主认证用户"></a>';
if($author_count>=1&&$author_count<20)
echo '<a class="vip1" target="_blank" href="/vip/" title="评论之星 LV.1"></a>';
else if($author_count>=20 && $author_count<50)
echo '<a class="vip2" target="_blank" href="/vip/" title="评论之星 LV.2"></a>';
else if($author_count>=50 && $author_count<80)
echo '<a class="vip3" target="_blank" href="/vip/" title="评论之星 LV.3"></a>';
else if($author_count>=80 && $author_count<130)
echo '<a class="vip4" target="_blank" href="/vip/" title="评论之星 LV.4"></a>';
else if($author_count>=130 &&$author_count<200)
echo '<a class="vip5" target="_blank" href="/vip/" title="评论之星 LV.5"></a>';
else if($author_count>=200 && $author_coun<300)
echo '<a class="vip6" target="_blank" href="/vip/" title="评论之星 LV.6"></a>';
else if($author_count>=300)
echo '<a class="vip7" target="_blank" href="/vip/" title="评论之星 LV.7"></a>';
}}
这些也同样是在functions.php添加的。

蚂蚁森林为我浇水吧!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: