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設置指南

如何展示最熱門或者最冷門的文章

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 資源嗎。未必,而且方便性會大打折扣。

這是一款強大的插件,更靈活的使用方法等着你來發掘。