非插件方式实现 WordPress 文章浏览次数统计

发布于 2019-06-05

非插件方式实现 WordPress 文章浏览次数统计

网站上要显示文章浏览次数,如果使用的是WordPress程序的话,大部分站长都会选择 WP-PostViews 这个插件。使用插件虽然会比较方便,但是也会有一些副作用。如果使用了大量的插件的话,会拖垮我们的网站速度,所以,今天我们就来给大家介绍一下如何使用通过纯代码实现文章浏览次数统计。

此方法是基于 cookie 实现的,当每次我们浏览文章详情的时候,首先会判断当前文章的 cookie 信息是否存在, 如果存在的话则略过,如果不存在的话, 则将浏览次数加一,并将该文章的id写入 cookie。

实现流程如下:

1.在 functions.php 文件添加以下代码

function getPostViews($postID){
    $count_key = 'views';
    $count = get_post_meta($postID, $count_key, true);
    if($count=='' || !$count){
        return "0";
    }
    return $count;
}
function setPostViews($postID){
    $count_key = 'views';
    $count = get_post_meta($postID, $count_key, true);
    if($count=='' || !$count) {
        $count = 1;
        delete_post_meta($postID, $count_key);
        add_post_meta($postID, $count_key, $count);
    }else{
        $count++;
        update_post_meta($postID, $count_key, $count);
	}
}

2.添加以下代码至主题的 single.php 文件

<?php 
if(!isset($_COOKIE['views'.$post->ID.COOKIEHASH]) || $_COOKIE['views'.$post->ID.COOKIEHASH] != '1'){
	setPostViews($post->ID);
	setcookie('views'.$post->ID.COOKIEHASH,'1',time() + 99999999,COOKIEPATH,COOKIE_DOMAIN);
} 
?>

3. 通过以下代码调用浏览次数

<?php echo getPostViews(get_the_ID());?>
喜欢 0
奋楫笃行,臻于至善!

相关文章

BEGIN 主题搜索结果页面添加标题图片

BEGIN 主题可以给文章分类页面、独立页面以及文章详情页面添加标题图片,但是在搜索结果页面及 404 页面却无法通过配置添加标题图片,本文简单分享一下给搜索结果页面和 404 页面添加标题图片,以及...
阅读全文

WordPress 文章评论设置分页按时间倒序排序

WordPress 评论默认是按发布的时间顺序排列的,如果我们想按照时间倒序排列,可以根据本文的方法修改。 1、修改comment-template.php 编辑文件 wp-includes/comm...
阅读全文

BEGIN 主题最新文章页面添加加载更多按钮

使用 Begin 主题的博主可能都发现过这样一个问题:如果设置杂志布局,博客页面(本站叫最新文章)是不显示加载更多按钮图标的,而其他所有带分页的页面都显示。如果不显示加载更多按钮图标的话,我们就只能通...
阅读全文

使用 LetterAvatar 脚本生成首字图片替代默认评论头像

Gravatar 是全球通用头像,如果我们没有设置 Gravatar 头像,那么在网站上留言或评论就会显示默认的头像或者随机头像,这样的话用户体验不是很好。今天为大家分享一下使用 LetterAvat...
阅读全文

WordPress 文章链接地址 ID 不连续解决方法

Wordpress 默认情况下发布的文章 ID 不是连续的,是因为 Wordpress 自动草稿、文章修订版、页面、菜单、媒体等功能都要占用 ID,所以发布的文章 ID 一般是不连续的。今天为大家分享...
阅读全文

使用 iconfont 阿里矢量图标为网站添加图标的方法

Iconfont 是一个开源的矢量图标管理平台,它的图标库非常丰富,大概有一百三十多万个。Iconfont 可以按照需求定制图标字体库,还能随时修改,最重要的字体图标库只有 100 多 K。今天就来为...
阅读全文

发表回复

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