將query_posts()放在LOOP之前限定你所需要的條件,wp_query會產生一個新的使用你的參數的SQL查詢,而忽視通過URL接收到的其它的參數,如果想不忽略,可以在調用中使用$query_string。
query_posts($query_string . "&order=ASC")
設置文章顯示的順序,但是不干擾其余的查詢字符串,參數前須有“&”符號
其他還有N多用途~~
<?php if (is_home()) { query_posts("cat=-3"); } ?>
<?php query_posts('p=5'); ?>
<?php query_posts('page_id=7'); //只返回網頁7 ?>
<?php query_posts('pagename=about'); //只返回關於網頁 ?>
<?php query_posts('pagename=parent/child'); // 返回母網頁的子網頁 ?>
<?php query_posts($query_string.'posts_per_page=-1'); while(have_posts()) { the_post(); put your loop here ; } ?>
==========================================
顯示屬於某個類別的文章
根據ID顯示一個類別
只顯示來自一個類別ID的文章
query_posts('cat=4');
根據名稱顯示一個類別
只顯示屬於某個類別名的文章
query_posts('category_name=Staff Home');
顯示幾個類別及ID
顯示屬於幾個類別ID的文章
query_posts('cat=2,6,17,38');
刪除某個類別的文章
顯示所有的文章,但是類別ID前面有個’-’(負號)負號的類被除外。
query_posts('cat=-3');
刪除屬於類別3的所有文章。有一個限制性條款:會刪除只屬於類別3的所有文章。如果一個類別也同時屬於其它的類別,這個類別仍然不會被刪除。
顯示與某個標簽相關的文章
為某個標簽提取文章
query_posts('tag=cooking');
獲得擁有任何這樣的標簽的文章
query_posts('tag=bread,baking');
獲取擁有這三個標簽的文章
query_posts('tag=bread+baking+recipe');
你也可以根據作者限制文章數目
author_name在 user_nicename區操作, 同時作者 在作者id上操作。
返回一篇單獨的文章或者一個單獨的網頁
由於 模板層級方 面的原因, home.php先執行了。這意味這你可以編寫一個home.php,home.phh調用query_posts()重新得到一個特別的網頁並且將那個 網頁設置為你的首頁。沒有任何插件或者hacks,你需要運行一個機制,並且顯示和維護一個非博客的首頁。
更有用的方法,可能是利用WP的網頁功能並且為你的首頁使用這個功能。你可以將”關於網頁”設置為entry point或者設置為站點的末頁。你可能執行一些更動態的步驟,設置一個自定義網頁,顯示最近的評論,文章,類別,存檔。請看看下面的例子。
得到某個特別的時間段內發表的文章
你不能轉移或者忽視一個或者更多的原始文章,這些文章一般是你的query同時使用offset參數收集到的。
下面的函數會顯示(1)最近的5篇文章
query_posts('showposts=5&offset=1');
根據這個區給得到的文章排序
同時考慮”ASC”或者的”DESC”的排序參數
你可能從上面的例子中注意到,你使用一個&(&符號)將參數組合在一起,像:
query_posts('cat=3&year=2004');
類別13,關於當前月份顯示在主頁上的文章:
if (is_home()) { query_posts ($query_string . '&cat=13&monthnum=' . date('n',current_time('timestamp'))); }
在2.3版本中,這個參數組合會返回屬於類別1同時屬於類別3的文章,只顯示兩篇(2)文章,根據標題,按降序排列:
query_posts(array('category__and'=>array(1,3),'showposts'=>2,'orderby'=>title,'order'=>DESC));
在2.3和2.5版本中,你可能期待下面的內容,返回屬於類別1並且標簽為”蘋果”的所有文章
query_posts('cat=1&tag=apples');
一個bug阻止這個運行。請看看Ticket #5433,一個工作區要搜索幾個使用+的標簽
query_posts('cat=1&tag=apples+apples');
對於先前的查詢,這個會產生期待的結果。注意使用’cat=1&tag=apples+oranges’能夠產生期待的結果。