WordPress 查詢迴圈區塊自訂文章列表版型

想在頁面上排出一整列文章,標題、精選圖片、摘要整齊對齊,卻不想碰任何 PHP,這正是 query loop 區塊(查詢迴圈區塊)要解決的事。它在 WordPress 5.8 進入核心,等於把過去寫在佈景主題裡的 WP_Query 迴圈,搬進區塊編輯器,用拖拉的方式重複排列文章。

問題是,這個區塊的設定邏輯跟一般區塊差很多。很多人插進去之後,發現分頁沒反應、每頁篇數怎麼改都沒變、想只顯示某個分類卻找不到下拉選單,最後卡在「繼承範本查詢」這個開關上不知道該開還是關。

這篇從版型結構講起,把 query loop 區塊的巢狀結構、清單與格狀版型切換、篩選與排序設定,以及最容易踩的「繼承查詢 vs 自訂查詢」決策一次講清楚,讓你做出能用在正式頁面、而且分頁正常運作的文章列表。

query loop 區塊是什麼,跟最新文章區塊差在哪

query loop 區塊是一個進階區塊,依你指定的條件(文章類型、分類、排序、篇數)撈出文章,再用你設計好的版型逐篇重複輸出。把它想成「會跑迴圈的最新文章區塊」:最新文章區塊只能調幾個固定選項,版型固定;query loop 區塊則讓你自己決定每一篇要顯示哪些欄位、用什麼排版重複。

關鍵差別在版型自由度。最新文章區塊輸出的是它內建的樣式,你改不動結構;query loop 區塊內部是一堆可增刪的巢狀區塊,你可以把精選圖片放上面、標題放下面,加上日期、作者、分類標籤,再決定整體要單欄清單還是多欄格狀。這也是為什麼它能做出作品集、課程列表、商品櫥窗這類需要重複版型的頁面。

代價是設定變複雜。最新文章區塊沒有「繼承查詢」「文章範本」這些概念,query loop 區塊全都有,新手第一次用幾乎都會在這幾個地方卡住。下面先把它的內部結構拆開。

query loop 區塊的內部結構由哪幾個區塊組成

query loop 區塊不是單一區塊,而是好幾個巢狀區塊組成的容器。看懂這個結構,後面所有設定才有對應的位置。插入區塊後打開「清單檢視(List View)」,你會看到由外到內依序是查詢迴圈、文章範本、各欄位區塊、分頁與無結果區塊。

查詢迴圈
最外層容器,管查詢條件
文章範本
每篇重複的版型
分頁/無結果
翻頁與空清單提示

各層的職責分得很清楚:

  • 查詢迴圈(Query Loop):最外層容器,負責「撈哪些文章」。文章類型、排序、篩選、每頁篇數都設在這一層的區塊設定裡。
  • 文章範本(Post Template):負責「每一篇長什麼樣」。它裡面放的區塊會對每篇文章重複一次。版型要切清單還是格狀,也是選這一層。
  • 欄位區塊:放在文章範本內,常見的有文章標題、精選圖片、內容摘要、發佈日期、文章分類、作者。增刪欄位就是在這層加減區塊。
  • 分頁(Pagination):讓訪客在多頁結果之間前後翻頁,可選上一頁、下一頁或頁碼。用不到可以刪,之後要再加回來。
  • 無結果(No Results):當查詢撈不到任何文章時顯示的訊息,只會在前台沒有符合結果時出現。建議保留,否則訪客可能看到一片空白。

實務上最重要的觀念是:在文章範本裡的任何更動都會套用到每一篇。把精選圖片拖到標題上面,整列文章都會變成圖在上、標題在下,不是只有第一篇。

文章範本怎麼切換清單與格狀版型

清單與格狀的切換,要選「文章範本」這一層,不是選最外層的查詢迴圈。選到文章範本後,它的工具列會出現「清單檢視」與「格狀檢視」兩個圖示,點哪個就用哪種版型輸出。

兩種版型的取捨可以從內容量來判斷:

  • 清單檢視(List View):由上而下單欄排列,每篇有較大空間放精選圖片和摘要。適合文章量還不多、或想讓單篇資訊更完整的部落格。
  • 格狀檢視(Grid View):多欄並排,一行塞 2 到 4 篇。適合文章累積到一定數量、或走雜誌/作品集風格的網站,視覺上比較豐富。

選格狀檢視後,文章範本的版面設定裡可以指定欄數。建議搭配「精選圖片比例統一」一起做,因為 query loop 區塊不會自動裁切圖片,各篇原圖比例不一時,格狀版型很容易高低參差。在精選圖片區塊的設定裡固定長寬比,整列就會對齊。

要增減每篇顯示的欄位,直接在文章範本內新增或刪除區塊即可。想做出「左圖右文」這種版型,可在文章範本裡放一個「欄位(Columns)」區塊,左欄放精選圖片、右欄放標題與日期,這個結構會對每篇重複。

標題和精選圖片點不進文章是漏了哪個設定

精選圖片和標題預設不一定是連結,要逐個欄位區塊手動打開連結開關。這是新手最常忽略、做完才發現整列文章點了沒反應的地方。

設定位置在欄位區塊各自的設定面板:

  • 選「文章標題」區塊,打開「將標題設為連結」。
  • 選「精選圖片」區塊,打開「連結至文章」。

因為這兩個區塊都在文章範本內,開了之後會套用到列表中的每一篇文章。沒打開的話,標題和圖片只是純文字與純圖片,訪客點不進內頁,等於做了一個無法導流的列表。

繼承範本查詢到底該開還是關

這是整個 query loop 區塊最關鍵、也最容易卡住的決策。它對應的是區塊設定裡的「查詢類型」:預設是「Default」,代表繼承目前範本的查詢;改成「Custom」才會出現文章類型、排序、篩選、篇數這些自訂選項。

判斷標準只有一個——這個列表要不要跟著當前頁面的情境跑

  • 保持 Default(繼承查詢):當你把 query loop 區塊放在「文章彙整範本」「分類彙整範本」「搜尋結果範本」這類範本裡時。繼承的意思是讓列表自動帶入當前頁面的條件,例如訪客點進「風水」分類頁,列表就自動只顯示風水分類的文章,不必你手動指定。彙整類範本就是要這種行為。
  • 改成 Custom(自訂查詢):當你在一個獨立頁面(例如自己做的「精選教學」著陸頁)想固定顯示某些文章時。這時你不希望列表跟著頁面情境變動,而是要自己指定文章類型、分類、篇數、排序。

很多人遇到「篩選和篇數選項整個不見了」,原因就是查詢類型還停在 Default。官方在區塊設定裡也有提示:看不到文章類型或篩選選項時,把查詢類型從 Default 切到 Custom 即可。

順帶提醒一個跨版本常見狀況:在彙整範本裡用自訂分類(custom taxonomy)做篩選時,曾出現過繼承查詢失效、列表把全部文章都撈出來的情形。遇到時的處理方向通常是改用 Custom 自訂查詢、明確指定分類條件,避開繼承機制的判斷。

分頁沒反應、每頁篇數改不動怎麼解

分頁與每頁篇數失效,幾乎都和繼承查詢綁在一起。觀念抓對就能一次解決,不用四處找外掛。

每頁篇數的部分:當查詢類型維持 Default(繼承)時,每頁要顯示幾篇是吃 WordPress「設定 → 閱讀」裡的「網誌頁面最多顯示」數值,你在區塊裡改了也不會生效。要在區塊內自己控制篇數,必須先把查詢類型切到 Custom,「顯示選項」裡的「每頁項目數(Items per Page)」才會作數。

分頁的部分:分頁區塊要正常翻頁,列表本身得是一個有明確篇數上限的查詢。在 Custom 模式下設定好每頁篇數,分頁區塊才能依篇數把後面的文章切成第二頁、第三頁。如果整個列表是繼承自範本、又沒有清楚的篇數設定,分頁就會抓不到要翻什麼。

「顯示選項」裡還有兩個實用參數,要點開「Display」旁邊的三點選單才看得到:

  • 略過(Offset):跳過開頭幾篇再開始輸出。例如首頁上方已用大版位介紹最新 3 篇,下方的列表設 Offset 為 3,就能接著從第 4 篇顯示,避免重複。
  • 顯示頁數上限(Max pages to show):限制分頁最多翻幾頁。文章量很大的站,這個值能避免訪客一直往後翻,也減輕資料庫負擔。

分類、標籤、作者篩選怎麼設定

篩選設定在查詢類型為 Custom 時才會出現,位置在區塊設定的「篩選(Filters)」區。篩選選項預設是收起來的,要按「+」把要用的篩選條件加進來,可選的條件會依文章類型、佈景主題與外掛而不同。

常用的篩選條件:

  • 分類與標籤(Taxonomies):依分類或標籤顯示文章,也可以反向「排除」某些分類或標籤的文章。要注意這裡多半沒有下拉選單,需要直接輸入分類或標籤名稱,用逗號或 Enter 分隔。
  • 作者(Authors):只顯示一位或多位指定作者的文章,適合多人共筆網站做作者專欄。
  • 關鍵字(Keyword):顯示符合關鍵字的文章。輸入多個關鍵字時是「全部都要符合」,無法做成「符合其中之一」。

排序則在篩選上方的「排序方式(Order by)」設定,可選由新到舊、由舊到新,或標題字母 A 到 Z、Z 到 A。字母排序對中文標題沒有實質意義,中文站通常用時間排序。

另外有個「置頂文章(Sticky posts)」設定,可選包含、排除、忽略或只顯示置頂文章,方便把重要公告固定在列表最前面。

顯示自訂文章類型與商品列表的做法

query loop 區塊完整支援自訂文章類型(CPT),這也是它比最新文章區塊強的地方。把查詢類型切到 Custom 後,「文章類型(Post type)」下拉選單裡除了文章與頁面,還會出現外掛或主題註冊的內容類型。

對 WooCommerce 網站來說,安裝後通常會多出「商品(product)」這個文章類型。在 query loop 區塊選擇商品類型,就能用排文章的方式排出商品列表,搭配自訂分類篩選(例如商品分類)顯示特定系列。這是版型呈現層面的做法,至於價格欄位、加入購物車按鈕等交易功能,仍由 WooCommerce 自身的區塊與機制負責,這裡只談如何把商品撈出來重複排版。

如果你會寫程式,還能更進一步用 registerBlockVariation()core/query 註冊一個 query loop 區塊變體,預先寫好文章類型、欄數、排序等預設值,並用 allowedControls 限定使用者能調整哪些選項。例如把文章範本預設成 3 欄格狀、精選圖片在上、標題為 H3 連結,做成團隊內部固定樣式的列表區塊。這屬於開發層級的延伸,一般站長用前述介面設定就已足夠。

大量文章時版面與效能要注意什麼

文章數量一多,query loop 區塊的設定就不只是好不好看的問題,會直接牽動載入速度。每頁篇數和顯示頁數上限這兩個值,是控制效能的主要槓桿。

幾個實務取向的建議:

  • 每頁篇數別貪多:格狀版型一頁放太多篇,等於一次要求資料庫撈出大量文章、前台也要載入大量精選圖片。一頁 9 到 12 篇通常是兼顧瀏覽體驗與速度的範圍,超過就靠分頁往後翻。
  • 善用顯示頁數上限:把分頁能翻的頁數設一個合理上限,避免極舊的文章被無止境往後撈。
  • 保留無結果區塊:篩選條件設得很細時,某些分類可能真的沒有文章。留著無結果區塊並寫一句提示,總比訪客看到空白版面好。
  • 精選圖片尺寸要一致:這既是版面問題也是效能問題。原圖過大未經適當尺寸輸出,格狀列表會同時拖慢版面對齊和載入速度。

還有一個容易被忽略的設定在「進階」區的「重新載入整頁(Reload Full Page)」。它預設開啟,翻頁時整頁重新載入,行為最可預期、對無障礙也最友善。關掉後翻頁只更新列表區塊、不重整整頁,體感較快,但要先確認自己的版型和其他區塊不會因此出現狀況再關。

把 query loop 區塊用對的關鍵順序

回到一開始的痛點:分頁沒反應、篇數改不動、找不到篩選,幾乎都源自同一件事——查詢類型停在 Default。先想清楚這個列表要不要跟著頁面情境跑,再決定用繼承還是 Custom,後面的篇數、分頁、篩選才有得設。

動手時照這個順序最省事:先用清單檢視看懂查詢迴圈、文章範本、分頁、無結果的巢狀結構,接著在文章範本裡排好欄位與清單/格狀版型,記得替標題和精選圖片打開連結,最後回到最外層決定查詢類型並設好篩選與篇數。

把這條路徑走順,你不必裝任何文章列表外掛,就能用核心區塊做出版型統一、分頁正常、還能依分類或商品類型靈活切換的文章列表。接下來就挑一個頁面實際插入區塊,照著從結構到查詢類型的順序設定一次,遇到設定消失就先確認查詢類型有沒有切到 Custom。

相關文章
標籤: WordPress 版型, 區塊編輯器, 查詢迴圈區塊, Query Loop, 文章列表