當我們在wordpress中使用<!–more–>標簽截斷文章時,在首頁、分類、標簽和存檔等頁面的文章內容都是顯示<!–more–>之前的文章,而在文章(Post)和頁面(Page)中時,則忽略<!–more–>標簽,顯示全文。
這當然是合理的,你總不可能讓訪客在你的最終文章頁還瞅著摘要發(fā)呆。
但對主題開發(fā)者來說,經常會使用一個Page Template來羅列一個符合查詢條件的文章列表。比如下面這段代碼返回分類ID為3下的所有文章。
以下為引用的內容:
<?php query_posts('cat=3'); while(have_posts): the_post(); ?>
<h2><?php the_title(); ?></h2>
<?php the_content(); ?>
<?php endwhile; ?>
但在這份文章列表里面,the_content()函數將始終輸出全文,不管你是否在文章中使用了more標簽。因為WordPress只知道這是一個Page頁面,要顯示全文,而不會智能的根據你是否使用了query_posts()或新建了一個WP_Query對象來決定是否支持more標簽。
P.S:說來慚愧,做了這么長時間的wordpress主題,我直到今天才發(fā)現這個問題。因為我個人比較喜歡“純文字摘要列表”的方式,以往需要創(chuàng)建文章列表時,都是使用自動截取文章字符的方式。但正在進行的一個項目,客戶要求輸出html全文,然后手動插入more標簽截斷。
廢話說了半天,其實解決方法簡單的不行,請看代碼(via weblogtoolscollection):
以下為引用的內容:
<?php global $more; $more = false; ?>
<?php the_content('Continue Reading'); ?>
<?php $more = true; ?>
說明: 在the_content()函數前聲明一個全局變量$more并且設置為flase就可以了。如果你希望在內容顯示完成后又回到原來的狀態(tài),那在后面再把$more變量設置為true
如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網友會為你解答??! 點擊進入論壇