实现文章阅读量统计和显示的完整WordPress代码
文章目录
在WordPress网站中,站长希望能够统计每篇文章的阅读量,并在页面上显示出来。此外,为了避免用户刷新页面导致阅读量重复累加,需要通过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. 将以下代码添加到要显示浏览次数的位置,例如文章列表(template-parts/content.php
)、文章详情页面(template-parts/content-single.php
)、搜索结果页面(template-parts/content-search.php
)等:
<?php echo getPostViews(get_the_ID()); ?>
代码解析
getPostViews($postID)
:该函数获取文章的浏览次数。如果该文章还没有浏览记录,则返回 "0"。setPostViews($postID)
:该函数设置文章的浏览次数。每次调用该函数时,浏览次数增加一次。single.php
文件代码:该代码在用户访问文章详情页时,通过Cookie判断该用户是否在设定的过期时间内访问过该文章。如果没有访问过,则调用setPostViews($postID)
函数增加浏览次数,并设置一个长时间过期的Cookie。
以上代码已经整理和修正,确保符号和语法无误。通过这些步骤,你可以在WordPress网站中实现文章阅读量的统计和显示功能,并避免刷新页面导致的重复累加问题。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至123@#-@12-3.com举报,一经查实,本站将立刻删除。
共有 30 条评论