用 WordPress 搭建網站已經有半年了,統計文章的瀏覽量一直用的是 WP-PostViews,很簡單,很實用。網站最重要的一點就是訪問速度,也經常會用 p3-profiler 來檢測哪些外掛佔用資源較多,選擇把一些不是很必要且佔資源的外掛刪除。
WP-PostViews 資源佔用也挺多,最重要的是能用程式碼實現就不用外掛,所以一直想著用程式碼來實現文章瀏覽統計。
而一直用外掛實現文章統計,用程式碼後之前的瀏覽統計是否會歸零,曾有過這樣的擔心。
在網上搜尋了下,程式碼是從老外的網站複製過來,也透過自己的實踐與簡單的修改,成功的實現程式碼統計文章瀏覽量,也不用擔心之前的統計歸零,可以延續之前的瀏覽量繼續統計。
WP-PostViews 外掛會自動生成 views 自定義域,所以我們只需再次建立自定義域 views 就完美解決那個擔心的問題。
首先,需要建立相關的函式。你可以把下面的程式碼貼上到你所用主題的 functions.php 檔案裡。
- function getPostViews($postID){
- $count_key = 'views';
- $count = get_post_meta($postID, $count_key, true);
- if($count==''){
- delete_post_meta($postID, $count_key);
- add_post_meta($postID, $count_key, '0');
- return "0 次瀏覽";
- }
- return $count.' 次瀏覽';
- }
- function setPostViews($postID) {
- $count_key = 'views';
- $count = get_post_meta($postID, $count_key, true);
- if($count==''){
- $count = 0;
- delete_post_meta($postID, $count_key);
- add_post_meta($postID, $count_key, '0');
- }else{
- $count++;
- update_post_meta($postID, $count_key, $count);
- }
- }
然後,貼上下面的程式碼到主題的 single.php 的文章的 loop 裡:
- <?php setPostViews(get_the_ID()); ?>
最後,把下面的程式碼複製到任意你的主題模板裡想要顯示點選數的地方:
- <?php echo getPostViews(get_the_ID()); ?>
有朋友在 WSNIPP 提出上面程式碼新增統計會影響到其它的文章 (大概意思),所以在 functions.php 中新增以下程式碼:
- remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
能用程式碼實現就不用外掛,這是用 WordPress 以來體會較深的一句話。功能實現了,網站速度也有所提高,是件很高興的事!