<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wp_head &#8211; 小豬日常</title>
	<atom:link href="https://piglife.tw/tag/wphead/feed/" rel="self" type="application/rss+xml" />
	<link>https://piglife.tw</link>
	<description>Hello World，一個紀錄生活與學習的地方</description>
	<lastBuildDate>Thu, 11 Dec 2025 02:50:35 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://piglife.tw/wp-content/uploads/2017/10/cropped-logo-1-32x32.png</url>
	<title>wp_head &#8211; 小豬日常</title>
	<link>https://piglife.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WordPress 單篇文章瀏覽次數計數器實作</title>
		<link>https://piglife.tw/technical-notes/wordpress-post-view-counter/</link>
					<comments>https://piglife.tw/technical-notes/wordpress-post-view-counter/#respond</comments>
		
		<dc:creator><![CDATA[小豬]]></dc:creator>
		<pubDate>Thu, 11 Dec 2025 02:50:35 +0000</pubDate>
				<category><![CDATA[技術筆記]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[post meta]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wp_head]]></category>
		<guid isPermaLink="false">https://piglife.tw/technical-notes/wordpress-post-view-counter/</guid>

					<description><![CDATA[本文介紹如何在 WordPress 單篇文章頁面利用自訂欄位與 wp_head 鉤子實作瀏覽次數計數...]]></description>
										<content:encoded><![CDATA[<h2 class="wp-block-heading">前言</h2>
<p>在許多網站中，追蹤文章的瀏覽次數是一個常見需求，可以用來分析內容受歡迎程度或作為推薦依據。這段 PHP 程式碼示範如何在 WordPress 單篇文章頁面中，利用文章自訂欄位（post meta）記錄瀏覽次數，適合有基本 WordPress 開發經驗的工程師或自學者。</p>
<h2 class="wp-block-heading">透過 wp_head 鉤子更新瀏覽次數</h2>
<p>WordPress 提供了多種鉤子（hook）讓開發者在不同時機點執行程式碼。這裡選擇使用 <code>wp_head</code>，代表每次載入頁面時會執行計數函式。</p>
<pre><code class="lang-php language-php php">add_action( &#039;wp_head&#039;, &#039;ks_track_post_views&#039; );</code></pre>
<p>這樣可以確保在文章頁面載入時，瀏覽次數會即時更新。</p>
<h2 class="wp-block-heading">計數函式邏輯解析</h2>
<p>函式 <code>ks_track_post_views</code> 主要做以下幾件事：</p>
<ol>
<li>使用 <code>is_single()</code> 判斷目前是否為單篇文章頁，避免在首頁或列表頁誤計數。</li>
<li>取得當前文章 ID。</li>
<li>從文章自訂欄位 <code>ks_post_views</code> 讀取目前瀏覽次數。</li>
<li>若已有數值，將其轉為整數後加一；若無則初始化為 1。</li>
<li>更新文章自訂欄位，寫入新的瀏覽次數。</li>
</ol>
<pre><code class="lang-php language-php php">function ks_track_post_views() {
    if ( is_single() ) {
        global $post;
        $post_id = $post-&gt;ID;

        $views = get_post_meta( $post_id, &#039;ks_post_views&#039;, true );
        $views = $views ? intval( $views ) + 1 : 1;
        update_post_meta( $post_id, &#039;ks_post_views&#039;, $views );
    }
}</code></pre>
<p>這段程式碼利用 WordPress 內建的 <code>get_post_meta</code> 和 <code>update_post_meta</code> 函式操作文章自訂欄位，避免直接操作資料庫，維持良好的相容性。</p>
<h2 class="wp-block-heading">實務應用與優化建議</h2>
<ul>
<li><strong>緩存問題</strong>：如果網站使用快取機制，可能會導致瀏覽次數無法即時更新，建議搭配 Ajax 或其他非快取方式更新計數。</li>
<li><strong>防止重複計數</strong>：目前邏輯無法區分同一用戶多次刷新，若需更精確的統計，可結合 Cookie 或 Session 控制。</li>
<li><strong>效能考量</strong>：大量文章同時更新 meta 可能影響效能，必要時可考慮批次更新或使用專門的統計外掛。</li>
</ul>
<h2 class="wp-block-heading">常見問題與注意事項</h2>
<ul>
<li>使用 <code>wp_head</code> 會在每次頁面載入時執行，若頁面包含大量資源，可能會稍微增加伺服器負擔。</li>
<li>確保文章自訂欄位名稱不與其他外掛或主題衝突，這裡使用 <code>ks_post_views</code> 作為前綴。</li>
</ul>
<h2 class="wp-block-heading">完整程式碼</h2>
<pre><code class="lang-php language-php php">&lt;?php

function ks_track_post_views() {
    if ( is_single() ) {
        global $post;
        $post_id = $post-&gt;ID;

        $views = get_post_meta( $post_id, &#039;ks_post_views&#039;, true );
        $views = $views ? intval( $views ) + 1 : 1;
        update_post_meta( $post_id, &#039;ks_post_views&#039;, $views );
    }
}
add_action( &#039;wp_head&#039;, &#039;ks_track_post_views&#039; );
</code></pre>]]></content:encoded>
					
					<wfw:commentRss>https://piglife.tw/technical-notes/wordpress-post-view-counter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
