实现文章阅读量统计和显示的完整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 条评论