如何不用wordpress插件顯示文章瀏覽統(tǒng)計(jì)功能?
WordPress無(wú)插件顯示文章瀏覽數(shù),附原理說(shuō)明,網(wǎng)上關(guān)于這方面的文章很多了,但是如果不了解下其中原理,難免有些不安,生怕代碼有什么漏洞,影響網(wǎng)站的正常訪問(wèn)。下面就來(lái)解釋一下其中的原理,代碼已經(jīng)在wordpress 3.4.1版本上測(cè)試通過(guò)
推薦: wordpress教程
增加文章瀏覽數(shù)
wordpress本身不帶文章瀏覽數(shù)的統(tǒng)計(jì)功能,所以要先將文章瀏覽數(shù)記錄起來(lái),才能在顯示文章的時(shí)候讀取到瀏覽數(shù)。wordpress的數(shù)據(jù)庫(kù)中文章表是wp_posts,其中沒(méi)有瀏覽次數(shù)的字段,如果自己加字段改動(dòng)就大了。比較好的辦法就是將數(shù)據(jù)記錄在wp_postmeta這個(gè)表中,這個(gè)表就是用來(lái)記錄一些文章擴(kuò)展數(shù)據(jù)的。實(shí)現(xiàn)代碼如下:
代碼如下:
/** *?設(shè)置文章的瀏覽次數(shù) *? *?@param?int?$postID?文章編號(hào) */ function?setPostViews($postID)?{ $count_key?=?'post_views_count'; $count?=?get_post_meta($postID,?$count_key,?true); if?($count?==?'')?{ add_post_meta($postID,?$count_key,?'1'); }?else?{ $count++; update_post_meta($postID,?$count_key,?$count); } }
代碼的流程就是先從wp_postmeta獲取文章的瀏覽數(shù),然后進(jìn)行判斷:如果沒(méi)有獲取到則增加文章瀏覽數(shù)的數(shù)據(jù),初始值設(shè)置為1;否則就將瀏覽數(shù)加1,更新文章瀏覽數(shù)。
最后只需將這段代碼復(fù)制到主題的funtions.php文件中,并在文章頁(yè)面(single.php)的主循環(huán)內(nèi)調(diào)用即可,調(diào)用代碼如下:
代碼如下:
<?php setPostViews(get_the_ID()); ?>
獲取文章瀏覽數(shù)
文章瀏覽數(shù)記錄之后就能讀取到了。代碼如下:
代碼如下:
function?getPostViews($postID){ $count_key?=?'post_views_count'; $count?=?get_post_meta($postID,?$count_key,?true); if($count==''){ return?1; } return?$count; }
代碼的流程就是從wp_postmeta獲取文章的瀏覽數(shù),如果沒(méi)有就返回1,否則就返回瀏覽數(shù)。
將這段代碼復(fù)制到主題的funtions.php文件中,在需要的地方調(diào)用這個(gè)方法就可以了。
小結(jié)
網(wǎng)上流行的版本有調(diào)用delete_post_meta,仔細(xì)查看代碼發(fā)現(xiàn)沒(méi)有什么必要。另外還有一個(gè)postviews插件也能實(shí)現(xiàn)類(lèi)似功能,不過(guò)從官網(wǎng)來(lái)看只兼容到wordpress 3.3.2版本。