WordPress 開啟 CDN 瀏覽量不增加
4,282 0
WordPress 開啟 CDN 靜態快取頁面之後,當訪問文章的時候,便不會去請求源站,而是返回 CDN 快取了的頁面,所以統計文章的瀏覽數量不會進行自增以及其他的變化。
想要解決這個問題,可以透過 Ajax 來非同步請求伺服器,然後再進行文章的瀏覽數量自增或其他的操作。
重要提醒:
本方法僅適用於使用了 WP-PostViews 外掛或者與 WP-PostViews 相同欄位的部落格。若你的文章統計欄位不同,可自行修改下方 SQL 語句以達到效果。
解決方案
首先,在 WordPress 的根目錄新建一個 PHP 檔案,命名為 views.php,然後將以下程式碼寫進該檔案:
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 HTML
<script>
$(function() {
$.post("/views.php", { post_id: <?php the_ID(); ?> }, function() {});
});
</script>
這樣就可以完美解決 WordPress 開啟 CDN 快取之後文章瀏覽量無法增加的問題了。
評論
(0)暫無評論,來說兩句吧