为WordPress主题添加阅读统计的功能


今天为星际2战术资源站和本博客的主题添加了一个阅读统计的功能,效果如下图:

我是采用子主题的方式,在子主题中添加functions.php文件,在里面加入下面两个函数:

<?php
/* 访问计数 */
function record_visitors()
{
    if (is_singular())
    {
        global $post;
        $post_ID = $post->ID;
        if($post_ID)
        {
            $post_views = (int)get_post_meta($post_ID, 'views', true);
            if(!update_post_meta($post_ID, 'views', ($post_views+1)))
            {
                add_post_meta($post_ID, 'views', 1, true);
            }
        }
    }
}
add_action('wp_head', 'record_visitors');

/* 取得文章的阅读次数 */
function post_views($echo = 1)
{
    global $post;
    $post_ID = $post->ID;
    $views = (int)get_post_meta($post_ID, 'views', true);
    if ($echo) return '阅读:'. number_format($views). '次';
    else return $views;
}
?>

这段代码是网上找的,不过我进行了一些小修改,原先它返回是用的echo,会导致显示效果的问题,而是用return就没有问题,之前检查了半天才发现这个问题。

然后在需要输出阅读次数的地方调用post_views()就可以了。不同的主题调用的地方和方法有些不一样,这个需要大家自己调试才行。