Wordpress 顯示相同標籤的文章列表

最近比較忙,偷空分享一個 Wordpress 的小技巧。

Wordpress 用家應該都知道,每篇文章都可加入標籤,方便讀者找到題材相近的文章。如果可以在網頁上顯示這些文章的標題和連結,製作成一個列表,相信對讀者很有幫助,亦可增加網誌的 Page View。筆者以前介紹過用分類 (Category) 製作「相關文章」列表,今次改用標籤來做,而另一個不同之處是把這列表放在側欄上。放在側欄和放在文章內容下方有什麼不同呢?答案是絕大部分 Template 中,前者是 The Loop 完結後才運行,而很多 template tags 是只可用在 The Loop 之中,如果你發現以前修改 template 時常常遇到問題,很可能是沒注意到這問題,故亂把內文一些元素移到側欄之上。

要以相同標籤製作「相關文章」列表,首先當然要獲取文章的標籤,可使用 get_the_tags(post_id) 這個 function:

  1.  
  2. <?php
  3.         global $post;
  4.         $alltags = ;
  5.         $posttags = get_the_tags($post->ID);
  6.         if ($posttags) {
  7.                 foreach($posttags as $tag) {
  8.                         $alltags . $tag->name . ‘,’;
  9.                 }
  10.         }
  11. ?>
  12.  

以上方法可取得文章所有標籤,每個標籤用,分開,用意是之後顯示包舍上述任何一個標籤的文章,如果希望顯示包括所有標籤的文章,則用+號分隔。

之後可用以下方法抽取相關文章,特別要注意的是用 get_posts function,這 function 用於 The Loop 之外。

  1.  
  2. <?php
  3.         $args = array(
  4.                         ‘numberposts’ => 5,
  5.                         ‘post__not_in’ => array($post->ID),
  6.                         ‘orderby’=>‘rand’,
  7.                         ‘tag’ => $alltags
  8.                         );
  9.         $myposts = get_posts($args);
  10.         foreach($myposts as $post) {
  11.                 echo ‘<li><a href="’;
  12.                 the_permalink();
  13.                 echo ‘">’;
  14.                 the_title();
  15.                 echo ‘</a></li>’;
  16.         }
  17. ?>
  18.  

以上幾個 arugments,意思分別是顯示5篇相關文、不顯示目前這篇文章及隨機顯示,另外需要設計只有獨立顯示一篇文章時,才使用這功能。

分享:

歡迎發表回應或 訂閱本站網誌

留言

未有留言

寫下留言

(必須)

(必須,不會顯示)