WP-PostViews 是一款很受歡迎的文章瀏覽次數統計插件,記錄每篇文章展示次數、根據展示次數顯示歷史最熱或最衰的文章排行、展示範圍可以是全部文章和頁面,也可以是某些目錄下的文章和頁面。本文還介紹了一些隱藏的功能,例如按照文章次數排序全站文章的功能。
到後台安裝插件那裏搜索 WP-PostViews 就可以下載該插件,具體過程不再贅述。
使用方法
啓用插件後,後台會出現一個新的菜單:設置 (Settings)-> PostViews 。訪問這裏就可以配置 WP-PostViews 的工作方式。具體怎麼用,請看下面的圖示,看圖之前需要知道的一些事情:
- WP-PostViews 工作原理:每刷新一個頁面,如果計數有效,則寫數據庫更新展示次數,展示次數用 custom fields 記錄。
- 設置生效的前提:需要將插件提供模板標籤 the_views() 寫到模板中 (index.php 、 single.php 或者 page.php 等),該標籤要寫在循環 (loop) 內。
- 設置中關於 the_views() 的輸出控制是全局設置,比如指定顯示次數後面的文字是 「人圍觀」,那麼不管在哪裏調用 the_views(),都會輸出類似 100 人圍觀的字樣,而不是 100 人關注之類的。
下面看圖,點擊可查看大圖

如何展示最熱門或者最冷門的文章
WP-PostViews 提供了一個 widget 小工具,上面圖示中也有提到,啓用這個 widget,設置好標題、顯示文章數目、顯示文章的類型以及是否顯示某些目錄下的文章,就可以啓用。
Statistics Type 設置
- 顯示熱門文章:Most Viewed
- 顯示冷門文章:Least Viewed
- 顯示某些目錄下的熱門文章:Most Viewed By Category
- 顯示某些目錄下的冷門文章:Least Viewed By Category
WordPress 的 Widget 支持多個實例,因此你可以在同一個頁面放置多個 Views 小工具,同時展示最熱和最冷文章,或者同時展示不同目錄下的最熱文章。
關於 the_views() 標籤
既然 the_views() 是該插件的靈魂函數,多嘮叨兩句也無妨,先看 the_views() 的參數
|
1
2
3
4
5
6
7
|
<?php the_views($display = true, $prefix = '', $postfix = '', $always = false) ?>//$display - 直接顯示還是作為字符串返回//$prefix - views 前面的內容//$postfix - views 後面的內容//$always - 是否總是顯示 (與後台設置中的 display options 相關//如果該項為真,則 display options 無論如何設置都沒用) |
比較有用的兩個參數是 $prefix 和 $postfix,例如給 the_views() 加一個 span 標籤
|
1
|
the_views(true, '<span class="views">','</span>'); |
輸出結果為
|
1
|
<span class="views">20 views</span> |
當然你可以在模板中調用時寫成
|
1
|
<span class="views"><?php the_views(); ?></span> |
如何直接獲取展示次數
如果你想動態設置展示次數後面的文字,例如在標題下面,需要展示為 「20 次圍觀」,另一個位置只想顯示成 20,不要後面的文字。怎麼辦?
最近單的方法是直接獲取展示次數,這樣後面是什麼文字你可以隨便寫,不需要通過後台設置來控制。
前面説過 WP-PostViews 用 custom field 存儲展示次數,這個 custom field 叫做」views「,直接獲取 views 的值就可以了。
方法一:在 loop 中獲取。
|
1
2
|
$post_views = intval(post_custom('views'));echo $post_views,__(' your text'); |
方法二:獲取任意文章的展示次數,是否在 loop 中無所謂
|
1
2
3
|
<?php $post_views = get_post_meta(1, 'views', true); echo $post_views,__(' your text');?> |
上面的代碼顯示 ID 為 1 的 post 的展示次數
更改主循環排序,按照文章展示次數瀏覽
WP-PostViews 還自帶了排序功能,通常首頁展示的文章是按照發布時間來排序的,你可知道只需要在 url 中添加一些參數就可以改變排序。例如
按照訪問次數由多到少排序,嘗試這樣訪問你的網站
|
1
|
http://yourdomain.com/?v_sortby=views |
按照訪問次數由少到多排序,添加這樣的參數
|
1
|
http://yourdomain.com/?v_sortby=views&v_orderby=asc |
只要啓用了 WP-PostViews,你的網站就自動獲得了這種排序瀏覽的方式,本站啓用了該插件,你可以訪問下面的地址測試。
http://www.solagirl.net/?v_sortby=views
http://www.solagirl.net/?v_sortby=views&v_orderby=asc
本博客更換主題後就禁用了 WP PostViews 插件,所以無法看到效果,請自行安裝測試。
如果不想這種不美觀的地址被搜索引擎收錄,在鏈接里加上 rel=」nofollow」 即可。
WP-PostViews API
WP-PostViews 定義的函數也可以單獨調用,它提供的 views 小工具就是調用這些函數工作的。
|
1
2
3
4
5
6
|
<?php get_least_viewed($mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示最冷門文章//$mode: post | page | both (相當於 widget 中的 Statistics Type 設置)//$limit: 顯示多少篇文章//$chars: 標題長度//$display: 為 true 則直接顯示,否則作為字符串返回 |
|
1
2
|
<?php get_most_viewed($mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示最熱門文章 |
|
1
2
|
<?php get_least_viewed_category($category_id = 0, $mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示某個或某些目錄下最冷門文 |
|
1
2
|
<?php get_most_viewed_category($category_id = 0, $mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示某個或某些目錄下最熱門文章 |
|
1
2
|
<?php get_most_viewed_tag($tag_id = 0, $mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示指定標籤下的最熱門文章 |
|
1
2
|
<?php get_least_viewed_tag($tag_id = 0, $mode = '', $limit = 10, $chars = 0, $display = true) ?>//顯示指定標籤下的最冷門文章 |
|
1
2
|
<?php get_totalviews(); ?>//顯示全站文章總共被瀏覽過多少次 |
結語
雖然不用代碼也可以實現計數功能,但 Sola 仍然推薦使用 WP-PostViews 插件來計數,原因嘛,該插件其實是非常透明的,所有的數據都可以直接調用,定製化非常方便,而且兼容 WP SuperCache 緩存插件,自帶全站文章排序功能,試問這些功能自己來寫,真的就能比這個插件節省內存和 CPU 資源嗎。未必,而且方便性會大打折扣。
這是一款強大的插件,更靈活的使用方法等着你來發掘。