當我們在wordpress中使用<!–more–>標籤截斷文章時,在首頁、分類、標籤和存檔等頁面的文章內容都是顯示<!–more–>之前的文章,而在文章(Post)和頁面(Page)中時,則忽略<!–more–>標籤,顯示全文。
這當然是合理的,你總不可能讓訪客在你的最終文章頁還瞅著摘要發呆。
但對主題開發者來說,經常會使用一個Page Template來羅列一個符合查詢條件的文章列表。比如下面這段代碼返回分類ID為3下的所有文章。
以下為引用的內容:
|
但在這份文章列表裡面,the_content()函數將始終輸出全文,不管你是否在文章中使用了more標籤。因為WordPress只知道這是一個Page頁面,要顯示全文,而不會智能的根據你是否使用了query_posts()或新建了一個WP_Query對象來決定是否支持more標籤。
P.S:說來慚愧,做了這麼長時間的wordpress主題,我直到今天才發現這個問題。因為我個人比較喜歡「純文字摘要列表」的方式,以往需要創建文章列表時,都是使用自動截取文章字符的方式。但正在進行的一個項目,客戶要求輸出html全文,然後手動插入more標籤截斷。
廢話說了半天,其實解決方法簡單的不行,請看代碼(via weblogtoolscollection):
以下為引用的內容:
|
說明: 在the_content()函數前聲明一個全局變量$more並且設置為flase就可以了。如果你希望在內容顯示完成後又回到原來的狀態,那在後面再把$more變量設置為true。
原文地址:https://paranimage.com/the-more-tag-on-a-wordpress-page/