query_posts函數在WordPress主題中是用于控制哪些文章可以出現在主循環中,可能說主循環很多人都不懂,那麼舉個例子,首頁、存檔頁的這些文章(包括分頁中的)都是在主循環中的。在不使用query_posts函數控制的情況,首頁、存檔頁等都是按照文章的釋出時間列出你部落格上所有已釋出的文章,而如果你想定義哪些文章可以顯示,哪些文章不顯示,文章按照什麼樣的方法排序等,那麼你就要用到query_posts函數了,本站首頁的文章排序:随機閱讀、評論最多和标題排序就是用query_posts函數來實作的。
确定了你要控制哪個頁面的文章清單,那麼我們就可以開始了,比如你想讓首頁的文章按評論數排序,那麼index.php中的代碼基本架構就是這樣的:
其實你要做的就是在index.php中查找<code>if (have_posts())</code>或<code>while (have_posts())</code>,在前面添加query_posts函數即可。不過以上方式可能會導緻首頁無法分頁,那你可以将query_posts函數改成這樣的行式:
下面是一些常見的query_posts函數用法,你可以直接用到你的主題中。
其實這種方式你可以看成怎樣隻顯示我推薦的文章,那麼含有這個自定義字段的文章就是推薦文章。
如果你不想讓某分類的文章出現在主循環中,那麼你可以使用query_posts添加參數category__not_in即可:
如果隻想讓顯示某個分類的文章,可以将category__not_in改成category__in。同理,如果不顯示某标簽下的文章,可以将category__not_in改成:tag__not_in,或者隻想讓顯示某個标簽下的文章,可以将category__not_in改成tag__in,後面跟着标簽的ID即可。
根據orderby的值不同,可以讓文章按照很多種方式進行排序,下面是列舉幾個常見的值及其對應的排序方式:title:按标題;date:按釋出日期;modified:按修改時間;ID:按文章ID;rand:随機排序;comment_count:按評論數
如我隻想顯示ID為2,4,6的文章,可以使用以下代碼:
如果不想顯示2,4,6這幾篇文章,可以将 post__in 改成 post__not_in 。另外如果隻想顯示置頂文章,那麼可以将array(2,4,6)改成<code>get_option('sticky_posts')</code>,這段代碼會自動給你填充所有置頂文章的ID。
如果你不想讓置頂文章顯示在頂部,而是讓它們安裝正常的順序排列,那麼可以使用以下代碼:
WordPress的文章狀态有很多種,包括已釋出、草稿、已删除、私人的、定時釋出的等等,如果你想将這些文章都統統顯示出來,那麼可以這樣:
post_status參數可以控制具體的文章狀态,值包括pending(待審)、publish(已釋出)、draft(草稿), future(定時), private(私有), trash(已删除)。
如果你想控制要顯示的文章數量,可以使用showposts參數:
如果你隻是想控制首頁、分類頁等每各分頁顯示的文章數量,可以在WordPress管理背景 - 設定 - 閱讀那裡設定部落格頁面至多顯示多少篇文章。
-- 完 --
如何聯系我:【萬裡虎】www.bravetiger.cn
【QQ】3396726884 (咨詢問題100元起,幫助解決問題500元起)
【部落格】http://www.cnblogs.com/kenshinobiy/