WordPress 開啟 CDN 瀏覽量不增加

4,282 0

WordPress 開啟 CDN 靜態快取頁面之後,當訪問文章的時候,便不會去請求源站,而是返回 CDN 快取了的頁面,所以統計文章的瀏覽數量不會進行自增以及其他的變化。

想要解決這個問題,可以透過 Ajax 來非同步請求伺服器,然後再進行文章的瀏覽數量自增或其他的操作。

重要提醒:

本方法僅適用於使用了 WP-PostViews 外掛或者與 WP-PostViews 相同欄位的部落格。若你的文章統計欄位不同,可自行修改下方 SQL 語句以達到效果。

解決方案

首先,在 WordPress 的根目錄新建一個 PHP 檔案,命名為 views.php,然後將以下程式碼寫進該檔案:

PHP
<?php require('wp-blog-header.php'); ?>
<?php
  $ajaxHead =  $_SERVER['HTTP_X_REQUESTED_WITH'];
  if (strtoupper($ajaxHead) == strtoupper("XMLHttpRequest")) {
    $post_id = $_POST['post_id'];
    echo $post_id;
    $sql = "update wp_postmeta set meta_value = meta_value + 1 where post_id = '${post_id}' AND meta_key = 'views';";
    $wpdb->query($sql);
  } else {
    header("HTTP/2 404 Not Found");
    header("Status: 404 Not Found");
    exit;
  }
?>

在上述程式碼中,為了防止惡意請求,做了一個 Ajax 請求標頭的驗證,驗證是否為 XMLHttpRequest 請求。如果不是,則返回 404 狀態。

接下來,在主題的 page.php 檔案插入以下 JS 程式碼:

HTML
<script>
  $(function() {
    $.post("/views.php", { post_id: <?php the_ID(); ?> }, function() {});
  });
</script>

這樣就可以完美解決 WordPress 開啟 CDN 快取之後文章瀏覽量無法增加的問題了。

評論

(0)

暫無評論,來說兩句吧

發佈評論

© 2026 一紙忘憂. 保留所有權利.

一紙忘憂的個人網站,關於技術探索與日常生活,記錄 Web 開發、後端與 DevOps 實踐,分享軟體工具、數位體驗,以及程式碼之外的見聞與思考。