照理說 codex. 將資料整理得這麼齊全方便,許多關於 WordPress 的相關問題,只要稍事搜尋,應該便可以迎刃而解,不過身邊一些朋友或是囿於語言上的限制,或是缺乏一些資料庫以及動態頁面的觀念,要找資料,還是不知如何找起。比方說最近有人就問我這樣的問題:怎樣在頁面的某個位置上,不要從第一篇開始列出文章,而是要自訂只列出第二篇到第四篇;或,第一篇列出全文,而從第二篇到第四篇,只列出標題…等等。
WordPress 是透過 PHP 以及 MySQL 語法,從資料庫中讀取文章內容,所以要限制只抓從某一篇到某一篇的範圍,就是透過 offset(偏移)以及 limit (限制)兩個語法。而用 WP 的術語來說,在index.php
等模板檔案中,用來顯示文章的範圍,叫做 loop,而在首頁、日期彙整、單篇彙整等不同的狀況下,在 loop 中會列出數量、範圍不同的文章,也就是,在程式執行到 loop 之前,其他部份的程式已經幫你設好了資料庫的選擇(select)範圍,然後將這些文章的相關資料(內文、標題等),塞到 loop 當中,再從 loop 中設定的語法,顯示文章。
在 WP 1.5 版之前,這些程式都寫在 <acronym title="WordPress">wp</acronym>-blog-header.php
中,1.5 後移到了 classes.php
這個程式裡頭。要修改選取的範圍,有幾種方法,其一是直接修改這個檔案,另外,就是 WP 1.5 提供了 get_posts() 這個標籤(tag),自訂選擇範圍,然後再自行創建一個 loop 即可。
在 codex 上提供的範例,就是從最近的第二篇文章開始,列出十篇分類 ID 為 1 的文章,並且只顯示標題與摘要。程式碼如下: