
部落格首頁、分類頁的文章列表,通常會在標題下面顯示一小段摘要。常見的困擾是:摘要太長把版面撐得很亂、太短看不出重點,或是後面多了一個看不懂的 […]。
這篇說明 WordPress 的摘要是怎麼來的,以及怎麼用程式碼調整長度和結尾。
先了解:摘要是從哪裡來的?
- 有寫手動摘要:直接顯示你寫的內容,不會被裁切,也不會加上
[…]。 - 沒有寫手動摘要:WordPress 自動從內文產生:先拿掉區塊、短代碼和 HTML 標籤,取前面固定的字數,最後加上
[…](原始碼裡是[…])。
下面的 excerpt_length、excerpt_more 調整的都是「自動摘要」。
中文的字數怎麼算?
網站語言設定為繁體中文時,WordPress 一般會以「字」來計算長度;英文網站則是以「單字」計算。
如果網站語言是英文、內容卻是中文,因為中文字之間沒有空格,WordPress 會把一整段當成一個單字,摘要就會變得非常長,甚至整篇顯示。遇到這種情況,先到「設定 → 一般」把「網站語言」改成繁體中文。
調整摘要長度:excerpt_length
程式碼加在子主題的 functions.php,或用 Code Snippets 外掛新增(說明請看 WordPress functions.php 實用程式碼整理):
add_filter( 'excerpt_length', function ( $length ) {
return 100; // 中文網站是字數,英文網站是單字數
}, 999 );- 最後的
999是執行順序。很多主題自己也設定了摘要長度,數字越大越晚執行,確保你的設定不會被主題蓋掉。 - 列表卡片的摘要通常 60~120 字就很夠,可以依版面調整。
把 […] 換掉:excerpt_more
只換成刪節號
add_filter( 'excerpt_more', function ( $more ) {
return '…';
}, 999 );很多主題在摘要下方本來就有「繼續閱讀」按鈕,這時只要換成刪節號就好,避免出現兩個連結。
換成「閱讀全文」連結
主題沒有「繼續閱讀」按鈕的話,可以讓摘要結尾直接變成連結:
add_filter( 'excerpt_more', function ( $more ) {
return sprintf(
'… <a class="read-more" href="%1$s">閱讀全文<span class="screen-reader-text">:%2$s</span></a>',
esc_url( get_permalink() ),
esc_html( get_the_title() )
);
}, 999 );screen-reader-text 裡的文章標題,畫面上看不到,但使用螢幕閱讀器的讀者會聽到「閱讀全文:文章標題」,不會一整頁都是分不清楚的「閱讀全文」。這是 WordPress 主題普遍使用的隱藏文字 class,如果你的主題沒有定義,標題會直接顯示出來,可以把那一段拿掉。
舊版文章的程式碼少了 <a href= 的開頭,直接使用會輸出一段壞掉的 HTML,請改用上面的寫法。
讓每一篇都有「閱讀全文」
excerpt_more 只會在自動摘要「有被截斷」時出現:有寫手動摘要的文章,或內容本身很短的文章,都不會有連結。
想讓每一篇都一定有連結,傳統主題可以改用這個組合:excerpt_more 只換成刪節號(上面第一段程式碼),再用 the_excerpt 在所有摘要後面加上連結:
add_filter( 'the_excerpt', function ( $excerpt ) {
return $excerpt . sprintf(
'<p class="read-more-wrap"><a class="read-more" href="%s">閱讀全文</a></p>',
esc_url( get_permalink() )
);
} );手動摘要寫在文章編輯畫面右側的文章設定裡(「摘要」欄位)。重要的文章建議自己寫摘要,用一兩句話說清楚這篇能解決什麼問題,比自動截斷的文字更吸引人點進來。
區塊主題:用「文章摘要」區塊的設定
使用區塊主題(例如 Twenty Twenty-Four)時,文章列表是由「文章摘要」區塊顯示的。到「外觀 → 編輯器」打開首頁或封存範本,點選文章摘要區塊,右側設定通常就能調整摘要的字數與「閱讀更多」的文字,不一定要寫程式。
只在某個地方用不同的長度
例如首頁的卡片想要短一點、分類頁維持原本的長度,可以在範本裡用 wp_trim_words() 另外截斷:
<p class="card-excerpt"><?php echo esc_html( wp_trim_words( get_the_excerpt(), 50, '…' ) ); ?></p>如果只是想讓畫面上最多顯示兩三行,不改內容,用 CSS 的 line-clamp 更簡單,做法請看 CSS 文字太長自動變成「…」。
改了沒效果?
- 那篇文章有手動摘要:手動摘要不受
excerpt_length影響。 - 主題用自己的方式產生摘要:有些主題不使用 WordPress 的摘要功能,先到「外觀 → 自訂」找找看有沒有「摘要長度」之類的選項。
- 用頁面編輯器做的文章列表:頁面編輯器的文章列表元件,通常有自己的字數設定。
- 網站有快取:清除快取外掛與 CDN 的快取之後再看。
延伸閱讀
列表頁的摘要寫得好,讀者才會想點進去看全文。正威網路行銷是 25 年經驗的基隆網頁設計工作室,擅長 RWD 響應式網站與 SEO 搜尋引擎優化,歡迎來聊聊。







發表留言
還沒有人留言,歡迎第一個分享你的想法或問題。留言經審核後才會顯示,Email 不會公開。