最近在给用户开发主题的时候需要调用文章作者发布的所有文章的总浏览数量,WP默认是没有这个功能,于是只能自己动手写了一个,当然使用这个功能您需要先在主题中集成文章浏览数量统计代码或者使用wp-postviews这个插件来实现文章的浏览数量统计功能。

功能代码


if(!function_exists('cx_posts_views')) {
    function cx_posts_views($author_id = 1 ,$display = true) {
        global $wpdb;
        $sql = "SELECT SUM(meta_value+0) FROM $wpdb->posts left join $wpdb->postmeta on ($wpdb->posts.ID = $wpdb->postmeta.post_id) WHERE meta_key = 'views' AND post_author =$author_id";
        $comment_views = intval($wpdb->get_var($sql));
        if($display) {
            echo number_format_i18n($comment_views);
        } else {
            return $comment_views;
        }
    }
}

前台调用

在前端调用这段代码之前呢我们需要先获取一个文章作者的ID值:


//直接输出作者ID
get_the_author_meta('ID');
//把作者ID赋值给特定函数
$author_id = get_the_author_meta('ID');
//我们这里需要用到第二种;

前台我们可以直接用:


/**
*文章页面直接输出该作者文章的浏览总数
*千级浏览数量会用逗号分隔
**/
//方法一
cx_posts_views(get_the_author_meta('ID'));
//方法二
$author_id = get_the_author_meta('ID');
cx_posts_views($author_id);
//如果我们只需要获取数量不做格式处理可以用
$author_id = get_the_author_meta('ID');
$author_views = cx_posts_views($author_id,false);
echo $author_views;
//或者
$author_views = cx_posts_views(get_the_author_meta('ID'),false);
echo $author_views;
//来调用

这段代码还是比较简单的,因为只需要列出指定作者的文章然后 用sql语法中的SUM()去计算meta_value字段所有值的总和即可。