在使用
CDN 加速
WordPress 网站时,
文章阅读计数功能常常会因为缓存机制出现偏差。传统的计数方式会因页面被 CDN 缓存而无法实时更新,甚至导致重复计数。本文将介绍一种既能兼容 CDN 缓存,又能保证计数准确性的解决方案。
该方案的核心思路是通过
Ajax 异步请求实现计数更新,并利用 Cookie 记录用户访问状态,避免同一用户多次刷新页面导致的重复计数。具体来说,当用户访问文章页面时,前端 JavaScript 会先检查 Cookie 中是否有访问记录:
- 若没有记录,则通过 Ajax 向服务器发送计数请求
- 服务器接收到请求后更新数据库中的阅读数
- 成功更新后,前端记录 Cookie 并更新页面显示的计数
这种方式下,CDN 缓存的只是静态页面内容,而计数操作通过动态请求完成,既利用了 CDN 的缓存优势,又保证了计数的准确性。
新建
views.js文件并保存到主题的
js目录下,代码如下:
在主题的
functions.php文件中添加以下代码,实现后端计数逻辑和脚本加载:
在
single.php中适当位置添加 JavaScript 调用代码,用于触发计数检查和更新:
在需要显示阅读数的位置(通常在文章标题下方或文章末尾)添加以下代码:
<span class="views">阅读:<?php bzg_post_views(); ?></span>
通过这种方法,我们可以在享受 CDN 加速带来的性能提升的同时,保持文章阅读计数的准确性,为网站运营提供可靠的数据参考。
感谢分享