WordPress 流量統計教學
在經營自架 WordPress 部落格的過程中,流量數據是一個至關重要的指標,不僅能幫助我們了解哪些內容受歡迎,也能讓我們進一步優化網站。然而,許多博主可能都遇到過這樣的問題:網路上雖然有不少提供流量統計功能的插件,但其中許多高級功能(例如顯示網站總流量)往往需要付費解鎖。甚至有些插件免費提供單篇文章的流量統計,但若要實現更全面的數據展示,例如整個網站的流量總和,卻必須購買訂閱或升級到專業版。
對於資源有限的個人博主或初創網站來說,這樣的費用可能成為一個不小的負擔。特別是當我們僅僅需要一個簡單的功能時,付費解鎖完整插件可能並不劃算。同時,許多插件功能繁雜,可能會增加網站的負擔,影響性能。
基於這樣的背景,自己撰寫程式碼來實現流量統計功能,成為一個經濟又實用的解決方案。不僅可以完全免費,還能根據自己的需求量身定制。例如,我們可以在每篇文章中顯示點擊次數,並在首頁或側邊欄上顯示整個網站的流量總數,讓訪客也能看到網站的受歡迎程度。
更棒的是,這樣的解決方案並不複雜,即使你對程式設計不是很熟悉,也可以透過簡單的教學輕鬆實現。不僅可以學習到一些基礎的 WordPress 開發知識,也能讓你的網站更有個性化的功能,為讀者帶來更好的體驗。希望這篇教學能幫助更多人以低成本實現這些目標!
在自架的 WordPress 網站上,可以透過撰寫程式碼來實現文章流量統計和首頁顯示總流量的功能。以下是實現方法的詳細步驟。
步驟一:安裝必要的環境
- 備份網站:在開始修改之前,務必備份你的網站和資料庫,以防萬一。
- 建立子主題 (Child Theme):如果你正在使用主題,建議建立子主題來進行修改,避免主題更新覆蓋程式碼。
步驟二:記錄文章流量
1. 在文章每次被訪問時更新流量
將以下程式碼加入子主題的 functions.php
:
|
程式說明第一段:增加文章流量計數
// 增加文章流量計數
function update_post_views($post_id) {
if (!is_single()) return; // 確保只在單篇文章頁執行
if (empty($post_id)) $post_id = get_the_ID();
// 獲取當前流量
$views = get_post_meta($post_id, 'post_views', true);
$views = $views ? $views : 0;
$views++;
// 更新流量數據
update_post_meta($post_id, 'post_views', $views);
}
解釋及說明:
-
function update_post_views($post_id)
- 這是一個名為
update_post_views
的函式(就像一個會完成任務的小機器人)。 - 它會執行「計算文章流量」的工作。
$post_id
是文章的編號,用來確保只記錄某篇特定文章的流量。
- 這是一個名為
-
if (!is_single()) return;
- 這一句是在檢查目前是不是正在瀏覽一篇文章。
- 如果不是(例如在首頁或分類頁),就什麼都不做,直接結束。
-
if (empty($post_id)) $post_id = get_the_ID();
- 這一句是在確認
$post_id
是否有值(也就是這篇文章的編號是否已經知道)。 - 如果不知道,就用 WordPress 的函式
get_the_ID()
自動取得文章編號。
- 這一句是在確認
-
$views = get_post_meta($post_id, 'post_views', true);
- 這是在取得這篇文章目前的流量數字。
get_post_meta
是 WordPress 提供的工具,用來讀取文章的附加資料(這裡是「post_views」這個數字)。
-
$views = $views ? $views : 0;
- 如果找到這篇文章的流量數字,直接使用這個數字;
- 如果找不到,就讓數字從
0
開始。
-
$views++;
- 這是將流量數字加
1
,表示文章被看了一次。
- 這是將流量數字加
-
update_post_meta($post_id, 'post_views', $views);
- 將更新後的流量數字儲存到文章資料中。
程式說明第二段:觸發這個函式
// 在 WordPress 初始化時觸發
add_action('wp_head', function() {
if (is_single()) {
update_post_views(get_the_ID());
}
});
條列式解析:
-
add_action('wp_head', function() { ... });
- 這是在 WordPress 的「頭部」部分加一個任務。
- 「頭部」是每次網頁載入時,WordPress 都會執行的地方。
-
if (is_single()) {
- 確認目前瀏覽的是否是一篇文章。
- 如果是,就執行裡面的內容。
-
update_post_views(get_the_ID());
- 呼叫剛才寫好的
update_post_views
函式,並傳入文章的編號(用get_the_ID()
取得)。 - 它的作用是幫這篇文章增加 1 次流量。
- 呼叫剛才寫好的
這段程式碼的工作原理如下:
- 當有人點進一篇文章時,
update_post_views
函式會開始運作。 - 它會取得這篇文章目前的流量數字,加 1 後再存回去。
- 透過
add_action
,這個計算過程會在每次有人訪問文章時自動執行。
小比喻
update_post_views
就像一本記事本,它會記錄「某篇文章被看了幾次」。- 每次有人點進文章,系統會先翻開記事本看看流量數字,然後將數字 +1,最後再寫回去。
這樣一步步解釋,應該能讓初學者輕鬆理解! 😊
2. 顯示每篇文章的流量
在主題模板檔案 (例如 single.php
) 中適當的位置插入以下程式碼://
文章流量 function get_post_views($post_id) { $views = get_post_meta($post_id, 'post_views', true); return $views ? $views : 0; } // 使用方式:在模板中調用 echo '本文章流量:' . get_post_views(get_the_ID());
步驟三:首頁顯示總流量
1. 計算所有文章的流量總和
在子主題的 functions.php
中添加以下函式:
|
2. 在首頁模板顯示總流量
在 index.php
或首頁模板適當位置插入以下程式碼:
echo '網站總流量:' . get_total_site_views();
步驟四:進階功能(可選)
- 快取數據:如果你的網站文章很多,計算總流量可能會影響效能,可以使用 Transients API 快取結果。
- 流量篩選:可進一步設置只記錄真實用戶流量(如排除機器人訪問)。
- 後台管理:透過 WordPress 管理後台顯示這些數據(可在「儀表板」新增一個 widget)。
這樣一來,就可以實現文章流量計數和總流量顯示的功能了!