[Blog]在WordPress中增加文章點閱次數統計

文章分類: 好用軟體一籮筐

想要了解自己Blog中,那一類型文章最受歡迎嗎?不妨加入文章點閱次數統計吧!

如果你和我一樣使用Wordpress,你可以看看這篇文章,了解如何在自己的Blog中加入文章點閱次數統計。

這篇教學文章的來源是從錢途無量這個對岸網友的Blog中所搜羅來的,其實早在好幾個月前就想把這個功能加入自己的Blog中,無奈當時對於整個Blog的操作不太熟悉,也擔心把自己Blog的資料庫搞爛,所以遲遲未動手。昨天突然想起來這件事,於是研究了一下,發現其實並不難做,於是按表操課把這個功能加到自己的Blog,也順便把這篇教學用我自己的方式重新整理了一下,讓整個操作過程更詳細,更容易被理解,有興趣的朋友可以嘗試一下,把這個實用的功能加入自己的Blog中!

方法其實不難,首先,你要做的是將整個Blog的資料庫備份起來(因為等一下要做的步驟會動到資料庫的部份,備份一下比較保險!),然後把這個文件直接用瀏覽器打開或是下載回來再用wordpad開啟,裡面有詳細的說明。看不懂英文?沒關係,你可以看這個文件(由“錢途無量”的作者所翻譯,我再把裡面的簡體中文轉換成正體中文)。

第一步,你要做的是進入MySql的phpmyadmin管理系統中,並開啟你的Blog的資料庫,並點選SQL標籤,以文字指令的方式增加新的資料欄位。請在輸入區中輸入:

create table mostAccessed
(
postnumber int not null,
cntaccess int not null,
primary key(postnumber),
unique id(postnumber)
);

這樣便完成新的資料欄位。

第二步,請到你的Blog資料匣中找找看有沒有“my-hacks.php”這個檔案,如果有,請在這個檔案中的任意位置(但必須在< ?php 和 ?>標籤之間)增加以下程式碼:

function add_count($p_number) {
$result = mysql_query("select postnumber, cntaccess from mostAccessed where postnumber = '$p_number'");
$test = 0;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
$row[1] += 1;
@mysql_query("update mostAccessed set cntaccess = '$row[1]' where postnumber = '$row[0]'");
$test = 1;
}
if ($test == 0) {
@mysql_query("insert into mostAccessed(postnumber, cntaccess) values('$p_number', '1')");
}
}

function show_pop_posts() {
global $wpdb, $siteurl, $tableposts;
$results = $wpdb->get_results("select postnumber, cntaccess from mostAccessed ORDER BY cntaccess DESC LIMIT 10");
foreach ($results as $result) {
$postnumber = $result->postnumber;
$post = @$wpdb->get_row("SELECT ID, post_title FROM $tableposts WHERE '$postnumber' = ID");
//$post_title = substr($post->post_title, 0, 20);
$post_title = $post->post_title;
//$url = get_permalink($post->ID);
echo "<li><a href="$siteurl"."index.php?p=".$post->ID."&more=1&c=1" title="$text" />$post_title</a>  <strong>($result->cntaccess)</strong></li><br />";
}
}
function show_post_count($postcountID, $before="(Visited ", $after=" times)") {
global $wpdb, $tableposts;
$resultscount = $wpdb->get_results("select postnumber, cntaccess from mostAccessed WHERE postnumber = $postcountID");
if (isset($resultscount)) {
foreach ($resultscount as $resultcount) {
$postcount = $resultcount->cntaccess;
echo $before.$postcount.$after;
}
}
}

如果你沒有“my-hacks.php”這個檔案,你可以直接到錢途無量這裡下載該站作者已編輯好的“my-hacks.php”檔(此檔案已加入上述的程式碼,不需另外編輯),並直接將這個檔案(請先將下載的 .rar解壓縮)丟到你的Blog目錄中

第三步,請登入你的Wordpress管理介面,並到“選項”中的“雜項”裡面,勾選“啟用 my-hacks.php 檔案”的項目,並儲存設定。

第四步,請開啟index.php這個文件(可以先做備份確保安全!),找到:

< ?php if ($posts) : foreach ($posts as $post) : start_wp(); ?>

這一行(如果你是使用中文化版本,應該會有“開始文章列表迴圈”這個註解),並在它的上面加上這一行程式碼:

e) { add_count($post->ID); } ?>

第五步,如果你想要有“熱門文章Top 10”的功能,可以使用“< ?php show_pop_posts(); ?>”這個語法,加到模板的適當位置,像我就是放在menu的位置,我是用以下的方式呈現:

<li id="Top 10"><?php _e('Top 10'); ?>
<p>
<ul>
<?php show_pop_posts(); ?>
</ul>
</li>

如果你不想使用這個功能,可以直接跳下一個步驟!

第六步,請找到“< ?php comments_popup_link(__('Comments (0)'), __('Comments (1)'), __('Comments (%)')); ?>”這一行,並在它的附近加上以下的程式碼:

< ?php show_post_count($post->ID, $before="(本文已被閱讀過 ", $after=" 次)"); ?>

如此便會在“留言回應”的旁邊加上(本文已被閱讀過xx次)的統計資料,當然,你可以把“本文已被閱讀過……次”敘述方式改成自己喜歡的說明文字!

大功告成囉!以後你就可以藉著文章點選統計來了解自己Blog中,那些文章是比較受歡迎的,結果或許連你自己也意想不到哦!

歷史上的這一天,我還寫了…

About 阿祥

阿祥,本名秦庭祥(Axiang Chin),是一個專注於3C領域、尤其是行動通訊領域的部落客,自2004年10月開始經營部落格超過11年之久,長期關注3C產品資訊與應用-尤其聚焦於智慧型行動裝置、雲端服務應用、App評析與行銷、以及遊戲評測與產業趨勢…等議題。阿祥同時也是3C布政司共同創辦人,提供社群行銷、教學與體驗活動規劃…等服務,並曾擔任元智大學資訊傳播學系兼任講師、國立空中大學管理與資訊學系學科委員,並於三星學園長期擔任手機課程講師,也受邀前往多間大學、政府機關擔任講師,分享雲端與行動工具應用心得。 Google

Faccebook 留言載入中...
  • axiang1980

    AMY您好:

    這篇文章是當初我使用WP架站時Survey的資料,在F2Blog是不適用的,但基本上F2Blog的點閱次數計算,邏輯上是合乎標準的,同IP的計算一般來說在限定時間內(可能依照Cookie或是其他的方式來判別)本來就是算一次,這與一般到訪計算的方式是相同的!

    至於F2Blog的改法,我手邊並沒有資料能回答您,抱歉!

  • AMY

    您好,我在網路上搜尋時看到貴站寫的這篇文章,初次來訪很冒昧就提出問題來,我是F2BLOG的使用者,但發現F2BLOG的文章點閱次數是受限於ID,也就是同一個人也許當天看了這篇文章10次,但計算上還是只有一次,我想要實際的點閱數,也就是看多次就是顯示多少次,但不知應該更改何處,不知道您知道嗎?