wordpress首頁顯示摘要的幾種方法小結(jié)

這種方法應(yīng)該是最靈活的一種方法,操作也很簡(jiǎn)單,只需要你在編輯文章的時(shí)候插入more標(biāo)簽

或者使用快捷鍵alt+shift+t,效果如下

那么如果你在主題的首頁模板中調(diào)用the_content函數(shù),首頁的文章摘要就顯示more之前的內(nèi)容。相反,如果沒有插入more標(biāo)簽,就會(huì)顯示全文。
手動(dòng)輸入摘要
在首頁模板中(比如home.php或index.php)中調(diào)用the_excerpt函數(shù)顯示摘要,如果你在編輯文章的時(shí)候,在下面的“摘要”內(nèi)輸入了內(nèi)容,則會(huì)顯示該“摘要”里的內(nèi)容

首頁、存檔頁顯示文章摘要的好處很多,比如:
1,頁面不會(huì)拉的很長(zhǎng),既美觀,又有利于訪客快速找到所需的文章
2,減少搜索引擎認(rèn)為的重復(fù)內(nèi)容
3,瀏覽者想看到全文就得點(diǎn)擊進(jìn)入單個(gè)文章頁,因此增加了點(diǎn)擊量 -.-
4,首頁、存檔頁數(shù)據(jù)量少了,節(jié)約了流量和帶寬,提高了頁面打開速度
RSS 輸出全文的好處只用講一條:作為讀者,我訂閱feed的時(shí)候很討厭那種只輸出摘要的
但是,wordpress默認(rèn)的是顯示全文,不但第一頁顯示全文,點(diǎn)“下一頁”,進(jìn)入第二頁、第三頁、乃至無窮頁,也都顯示全文。那么如何解決這一問題呢?網(wǎng)上流傳著很多方法:
一、在寫日志時(shí)插入<!–more–>標(biāo)簽,這樣在首頁、存檔頁顯示的就只是<!–more–>之前的內(nèi)容。
這種做法缺點(diǎn)太明顯:
1,rss輸出也變成了只有<!–more–>之前的內(nèi)容。實(shí)際上,這一缺點(diǎn)可以通過改代碼、裝插件等辦法克服,但另一個(gè)缺點(diǎn)則無法克服:
2,如果你之前已經(jīng)寫了數(shù)百篇文章,難道還要一個(gè)個(gè)修改,重新加上<!–more–>標(biāo)簽嗎?
二、修改主題的模板文件,在 index.php 里找到
<?php the_content(); ?>
改成
<?php
if (is_single() or is_page())
{the_content();}
else
{the_excerpt();}
?>
這樣改的作用是加一個(gè)判斷,如果是單篇日志頁或靜態(tài)頁面,則輸出全文,否則輸出摘要。
看上去很美,但wordpress默認(rèn)的摘要輸出算法是根據(jù)西文來的,以空格判斷字?jǐn)?shù),而中文里基本沒空格,所以它算完了之后輸出的“摘要”其實(shí)還是全文……因此,對(duì)中文博客而言,此法必須和其他辦法協(xié)同使用。
三、寫日志時(shí)自定義摘要。在寫日志界面有一個(gè)“自定義摘要”字段,把自己想顯示為摘要的話輸入進(jìn)去即可。
這種辦法優(yōu)點(diǎn)非常突出:不像其他辦法都只能把文章開頭的若干字顯示為摘要,這種方法的摘要內(nèi)容非常靈活,可完全自定義。
但缺點(diǎn)也很突出:和第一種辦法一樣,以前的文章都要一個(gè)個(gè)手工改,工程過于浩大。
四、修改 WordPress 自帶的摘要函數(shù)
根據(jù)http://www.fwolf.com/blog/post/102(這篇文章網(wǎng)上轉(zhuǎn)載很多,我個(gè)人判斷認(rèn)為這里是原始出處,可嘆很多轉(zhuǎn)載的在搜索引擎中排名倒更靠前)
修改wordpress的源文件,對(duì)一般用戶來說恐怕有點(diǎn)難度,而且如果升級(jí)wordpress還得重新修改,維護(hù)不方便。不過最新發(fā)現(xiàn)原作者把它寫成了一個(gè)插件,所以都放在下面插件里面一起講吧。
五、使用插件,主要仍是修改wordpress自帶的摘要函數(shù)。不過wordpres默認(rèn)的情況是存檔頁(按分類、標(biāo)簽和時(shí)間存的檔)用摘要輸出,主頁及主頁上點(diǎn)進(jìn)去的第二頁、第三頁等等用全文輸出,因此即使用了插件,想要首頁顯示摘要的話,仍要用第二種方法修改一下主題的模板文件才行。
下面分析一下我知道的幾個(gè)插件的算法:
1,Fwolf的 http://www.fwolf.com/blog/post/296
和wp自帶的幾乎一樣,只不過把按空格判斷改成了按段落判斷,會(huì)輸出文章的前三段作為摘要。因?yàn)槭前炊温漭敵?,也不?huì)出現(xiàn)中文亂碼。
2,桑葚的中文工具箱 http://yanfeng.org/blog/wordpress/kit/
用substr()函數(shù)截取前256個(gè)字節(jié),再用utf8_trim()函數(shù)處理,保證中文不會(huì)出現(xiàn)亂碼。
3,Yskin的 http://yskin.net/2006/07/mulberrykit.html
我原來推薦過這個(gè),覺得很完美,但后來覺得我個(gè)人還是有些定制化的要求,決定自己動(dòng)手改一改,因此才有了這篇文章 -.-
Yskin的是段落和字?jǐn)?shù)混合判斷,先根據(jù)回車把文章分割成n段,然后用mb_strlen()判斷字?jǐn)?shù),如果沒超過規(guī)定的字?jǐn)?shù),就再輸出一段。因此他的最小輸出單位仍然是段落。
以上所有方法都有一個(gè)共同特點(diǎn):輸出的摘要是沒有格式的,只有純文本,原來的顏色、字體、超鏈接、圖片等等都被過濾掉了。而我個(gè)人其實(shí)希望能夠保留格式。
另外,按段落輸出的話,有的段落長(zhǎng),有的段落短,那么輸出的摘要就不是很整齊(其實(shí)苛求這個(gè)整齊對(duì)一般的blog也沒什么意義,不過如果是cms或雜志風(fēng)格的主題,對(duì)排版可能有一定需求,另外就是我個(gè)人的偏好 -.-)。
最理想的情況是根據(jù)顯示的行數(shù)判斷,就像古龍的小說一樣,按行數(shù)算錢,不管這行是只有一個(gè)字,還是寫滿了,這樣輸出的文字塊大小一定是整齊的。但網(wǎng)頁不像書本,寬度不固定,無法預(yù)知每行寫滿了應(yīng)該是多少字,而且如果保留圖片的話,那么圖片應(yīng)該占多少行也很難判斷,所以根據(jù)行數(shù)判斷暫時(shí)不可行。
退而求其次的辦法是根據(jù)字?jǐn)?shù)判斷。每個(gè)摘要雖然“占地面積”可能不一樣,但字?jǐn)?shù)是一樣的,也還算整齊。不過中文工具箱的辦法有點(diǎn)麻煩,其實(shí)有個(gè)mb_substr()函數(shù)就完全可以達(dá)成這一任務(wù),截取指定數(shù)量的前若干個(gè)漢字,絕不會(huì)出現(xiàn)亂碼。
不過mb_substr()函數(shù)也有個(gè)問題,它是根據(jù)字符數(shù)截取,如果文章里面夾雜了英文,比如wordpress這一個(gè)詞就是9個(gè)字符了,它比九個(gè)漢字的占地面積要小的多,那么夾雜英文的摘要就會(huì)顯得比全漢字的摘要短(這個(gè)都考究,我覺得我是有點(diǎn)bt了 -.-)。解決辦法是用mb_strcut()函數(shù),它和mb_substr()函數(shù)基本一樣,只是是根據(jù)字節(jié)數(shù)截?cái)嗟?,在utf-8里,一個(gè)漢字大概占三個(gè)字節(jié),一個(gè)英文字母占一個(gè)字節(jié),這樣截出來的漢字文本就會(huì)短一些,和英文的長(zhǎng)短比較一致。同樣,mb_strcut()函數(shù)也不會(huì)出現(xiàn)亂碼。
mb_substr()和mb_strcut()函數(shù)共同的問題是,它們是按字符截取的,對(duì)英文來說就是按字母截取的,因此有可能把一個(gè)單詞從中間截?cái)?hellip;…
另一個(gè)問題是mb_substr()和mb_strcut()屬于mbstring擴(kuò)展庫,有的空間不支持。對(duì)于這種空間商,寫信去要求他安裝吧,付了錢的就得理直氣壯提要求。要求無效的,真得考慮一下這種基本要求都不能滿足的空間的質(zhì)量了。
我寫了一個(gè)插件,基本仿照Yskin的,不過截取用的是mb_strcut()。并為不支持mb_strcut()的空間自定義了一個(gè)函數(shù),抄自網(wǎng)上的mb_substr()函數(shù)替代腳本,沒找到mb_strcut()的替代腳本,汗。此外還有以下特點(diǎn):
1,輸出的摘要保留原來文章的格式。
2,做了一個(gè)判斷,如果是存檔頁(分類存檔、每月存檔等),輸出的摘要較短;如果是首頁,輸出的摘要較長(zhǎng)。
3,如果本來的文章長(zhǎng)于摘要,那么最后會(huì)顯示[……],省略號(hào)指向全文的鏈接。去掉了Yskin原來的統(tǒng)計(jì)字?jǐn)?shù),因?yàn)槲覀€(gè)人不喜歡;當(dāng)然要加上也很容易。
更新:
Advanced Excerpt 是另一個(gè)很好的 WordPress 摘要插件,但需要略加改動(dòng)才適合中文,對(duì)它的介紹和修改方法請(qǐng)看保留 html 標(biāo)簽的 wordpress 摘要插件一文。 總結(jié):
為了完美地實(shí)現(xiàn)在 wordpress 博客首頁、存檔頁顯示摘要,RSS 輸出全文,請(qǐng)根據(jù)自己的需求下載上述摘要插件中的一個(gè),或下載我寫的摘要插件。開啟插件之后,如果發(fā)現(xiàn)你的首頁仍然是全文,那說明你的主題不支持,請(qǐng)根據(jù)上面的第二條辦法修改主題文件。
相關(guān)文章
CyberPanel安裝WordPress并配置偽靜態(tài)規(guī)則
下面教你如何在 CyberPanel安裝WordPress以及配置偽靜態(tài),需要的朋友可以參考下2023-12-27- 這篇文章主要介紹了wordpress無法安裝更新主題插件的解決辦法,需要的朋友可以參考下2020-12-27
WordPress必備數(shù)據(jù)庫SQL查詢語句整理
發(fā)現(xiàn)幾條比較實(shí)用的,適合 WordPress 實(shí)用的SQL語句。于是就趕緊收集分享出來了,需要的朋友可以參考下2017-09-23wordpress在安裝使用中出現(xiàn)404、403、500及502問題的分析與解決方法
wordpress是很多新手站長(zhǎng)搭建個(gè)人博客最喜愛的程序,但是最近在使用WordPress的時(shí)候遇到了一些問題,所以想著將遇到問題總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于wo2017-08-11WordPress取消英文標(biāo)點(diǎn)符號(hào)自動(dòng)替換中文標(biāo)點(diǎn)符號(hào)的優(yōu)雅方法
這篇文章主要介紹了WordPress取消英文標(biāo)點(diǎn)符號(hào)自動(dòng)替換中文標(biāo)點(diǎn)符號(hào)的優(yōu)雅方法,需要的朋友可以參考下2017-04-04- 這篇文章主要給大家介紹了wordpress自定義上傳文件類型的方法,如WordPress默認(rèn)允許上傳 .exe 后綴名的可運(yùn)行文件,那么我們?cè)趺唇褂脩粼赪ordPress后臺(tái)發(fā)表文章時(shí)上傳 .e2016-12-19
- 大家可能發(fā)現(xiàn)了當(dāng)實(shí)現(xiàn)了前端用戶中心,后臺(tái)控制面板就失去了作用,那么限制其他用戶進(jìn)入后臺(tái)控制面板就很有必要了!那么我們要怎么做呢?通過下面這篇文章分享的方法后,只2016-12-19
WordPress實(shí)現(xiàn)回復(fù)文章評(píng)論后發(fā)送郵件通知的功能
這篇文章主要介紹了WordPress實(shí)現(xiàn)回復(fù)文章評(píng)論后發(fā)送郵件通知的功能,涉及wordpress針對(duì)評(píng)論與郵件的相關(guān)操作技巧,需要的朋友可以參考下2016-10-11WordPress使用自定義文章類型實(shí)現(xiàn)任意模板的方法
這篇文章主要介紹了WordPress使用自定義文章類型實(shí)現(xiàn)任意模板的方法,可通過自定義文章類型來實(shí)現(xiàn)任意模版的使用,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-11WordPress后臺(tái)地址被改導(dǎo)致無法登陸后臺(tái)的簡(jiǎn)單解決方法
這篇文章主要介紹了WordPress后臺(tái)地址被改導(dǎo)致無法登陸后臺(tái)的簡(jiǎn)單解決方法,簡(jiǎn)單分析了后臺(tái)無法登陸的原因與相應(yīng)的解決方法,涉及針對(duì)wordpress配置項(xiàng)的簡(jiǎn)單修改,需要的朋友2016-10-11