WordPress 订制

使用插件在 WordPress 评论中构建简单等级系统

为 WordPress 构建一个简单评论等级系统,即在评论的作者名称后显示该作者的等级,对于丰富网站内容以及提高用户体验有着不小的作用,用户也往往因为等级的存在更愿意在评论中参与互动。

关于如何在 WordPress 的评论中显示用户等级,百度一搜便可以发现一大堆教程,内容大同小异。这里给大家分享的是一款来自 WordPress 官方的插件:Simple User Rank Comments通过后台调整用户等级标题以及达到该等级所需要的评论数,来在前台显示作者的等级。这款插件由一名法国人在 2012 年开发,虽然有些年头了,不过功能还是可以正常使用的。

creating-a-simple-user-ranking-system-in-comments-using-wordpress-plugin-1
插件 Simple User Rank Comments 的前台演示
creating-a-simple-user-ranking-system-in-comments-using-wordpress-plugin-2
插件 Simple User Rank Comments 的后台设置选项

无论是网传的代码法还是这里提到的插件法,原理其实都一样:从数据库中按照 Email 提取用户发表的评论数量,再根据一定的规则让用户显示相关等级

使用插件的好处有:

  1. 安装简单,一点即用,不需要在前台修改任何代码;
  2. 插件逻辑更严谨、更规范、更专业;
  3. 可以在后台自定义等级规则,而不需要修改代码;
  4. 完全独立,主题升级时不受影响;

虽然这样的小功能在部署后基本不会再发生多大的改变,但对于完美主义者和喜欢折腾的人来说,用上插件将功能模块化,感觉起来要更高大上一点。此外,这个小插件由于结构简单,功能单一,写法专业,其代码非常值得初学者学习和借鉴。

插件的优化以及自定义

原版插件只提供了为评论作者添加文字等级的功能,如果想要添加等级徽章或用户角色等功能的话,还需对插件代码进行修改

creating-a-simple-user-ranking-system-in-comments-using-wordpress-plugin-3
Tap.tw 对插件 Simple User Rank Comments 优化后的前台演示

想要在标题区域输入任意 HTML,如添加图标,只需要找到插件文件 simple-user-rank-comments.php 中的 function attach_rank_to_author(约第 124 行),删除 esc_html( 以及右边对应的 ) 即可。

想要显示评论作者的用户等级,还需另加函数,以下代码是根据评论 ID 取得该评论作者的用户角色,可供参考:

function get_user_role()
{
    $comment = get_comment( $comment_id );

    if ( $comment->user_id )
    {
        $comment_author_id = $comment->user_id;

        $user_meta = get_userdata( $comment_author_id );

        $role = implode( ', ', $user_meta->roles );

        return $role;
    }
    else
    {
        return 'guest';
    }
}

取得用户角色后。便可为角色分配不同样式了。

标签

发表评论

电子邮件地址不会被公开。 必填项已用*标注