2016/11/15

Wordpress 用query_posts列出特定範圍文章

(出處: wordpress-researcher.com)
query_posts是一個非常好用的調用文章函數,可以做到同頁面內顯示多種不同範圍的文章,可以抓出某分類、標籤、日期及作者都可以,甚至連自訂欄位的資料也可以拿來當時判斷範圍的條件資料。

首先 query_posts 的寫法通常是如以下這樣的結構,先定義查詢再加入文章迴圈程式碼後再重置查詢就差不多ok了。

 <?php//定義要顯示的文章範圍查詢query_posts('posts_per_page=5');//文章迴圈if ( have_posts() ) : while ( have_posts() ) : the_post();?><!-- 這邊是當判斷符合時列出的文章清單,你可以用< ?php the_xxx(); >系列來顯示相關的文章資訊 --><?phpendwhile; else:?><!-- 這邊是顯示抓無資料時要跑出來的錯誤訊息 --><?phpendif;//重置查詢(這是為了避免之後的查詢資料因為上面這段查詢而混亂掉)wp_reset_query();?>

再來是說明在query_posts裡可以輸入哪些參數來顯示出自己想要的文章範圍。

Category Parameters(文章分類參數)

  • cat – 輸入分類編號來顯示出該分類內的文章
  • category_name – 輸入分類名稱來顯示出該分類內的文章
  • category__and – 顯示同時被列入多個分類的文章 (限輸入分類編號來識別)
  • category__in – 顯示該分類內的文章,但不包括子分類內的文章 (限輸入分類編號來識別)
  • category__not_in – 除某分類內的文章,其他分類及子分類文章均顯示 (限輸入分類編號來識別)
<?php// 僅顯示分類編號為4的文章 (包括子分類文章)query_posts('cat=4');// 僅顯示分類名稱為Codex的文章 (包括子分類文章)query_posts('category_name=Codex');// 顯示多個分類內的文章 (包括各子分類文章)query_posts('cat=2,6,17,38');// 除了分類編號為3的文章 (包括子分類文章),其他文章都顯示query_posts('cat=-3');// 顯示同時有分類編號為2及6的文章query_posts(array('category__and' => array(2,6)));// 顯示分類編號為6的文章  (但不包括子分類文章)query_posts(array('category__in' => array(6)));// 除了分類編號為2及6的文章,子分類及其他分類文章都顯示query_posts(array('category__not_in' => array(2,6)));?>

使用query_posts控制文章排序方式

(出處: sjyhome)
orderby=date?按发布日期排序
orderby=modified 按修改时间排序
orderby=ID 按文章ID排序
orderby=comment_count 按评论最多排序
orderby=title 按标题排序
orderby=rand 随机排序

目前我使用的code:

<ul><?phpquery_posts('category_name=touchgreen&orderby=ID');if ( have_posts() ) : while ( have_posts() ) : the_post();?> <li><a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li> <?phpendwhile; wp_reset_query();?></ul>

沒有留言:

張貼留言