dede:[field:info /][field:description /]文章摘要字數的設置方法

2020-12-10


在Dedecms系統中,文章摘要(可以通過infolen或description相關標簽調用)被設置了字數上限為250字符,設置上限的主要目的是減少數據庫的冗余,保證網站良好的性能。因此,如果對簡介內容不設置上限顯然不合理,但是如果可以自由控制這一上限,那么將對網頁內容布局帶來積極作用。在網頁設計過程中,往往需要在頻道列表頁面調用到文章摘要,如果可以有效控制文章摘要的字數,那么就可以使得頁面布局很靈活。

在Dedecms中,在列表頁調用文章摘要的方法主要有:

1:[field:info /]
2:[field:description /]
3:[field:info function="cn_substr(@me,字符數)"/]
4:[field:description function="cn_substr(@me,字符數)"/]

第1、2種方法是直接調用文章摘要,在調用的字數問題上,當使用[field:info /]時,可以在{dede:arclist infolen=' ' }{/dede:arclist}中,設置調用摘要的字符數(最高可設置為系統設置的250);如果使用[field:description /],則直接使用后臺設置的摘要字符上限。顯然,這兩種方式都很被動,靈活性太差。

第3、4種方法通過function函數實現了對文章摘要顯示字符的靈活調整。當然,在沒有修改文章摘要內容字符上限時,這4個方法的差異并不大。但是,下面我們來說如何修改這一上限值,就可以體現出[field:description function="cn_substr(@me,字符數)"/]這一方式的重要性。

在Dedecms中,與文章摘要相關的php文件主要有:

/dede/archives_add.php
/dede/archives_edit.php
/dede/article_add.php
/dede/article_edit.php
/dede/article_description_main.php

在add頁面,有一句話是:“$description = cn_substrR($description,$cfg_auot_description); ”,這句話實現了[field:description function="cn_substr(@me,字符數)"/]這一功能。因為這一語句確實有利于頁面布局,因此我們在實驗中沒有修改。

在edit頁面,有一句話是:“$description = cn_substrR($description,250); ”,這句話中出現了一個熟悉的字符數“250”,這就是系統設置的文章摘要字符數的上限值。 如果是gbk編碼則顯示出來的就是125個字。如果是utf-8編碼則是81個字。顯然,我們要突破文章摘要字符數上限,肯定得拿它開刀了。是的,這里修改“250”為其他值即可,例如“500”。這里不推薦設置得過高,一個是在列表頁沒必要展示太多內容(展示太多內容不如直接用body了),另一個是避免數據庫產生冗余。

完成上面的修改還不夠,還需要修改article_description_main.php

在article_description_main.php頁面,找到“if($dsize>250) $dsize = 250;”語句,這里限制了在后臺自動獲取摘要的字符數。把這里的“250”修改為“500”即可,也就是和之前修改的字符數一致即可。(如果你確認你的每一條文章都是手動添加,手動完成摘要獲取就不需要修改這個文件了。自動摘要獲取主要還是給大量文章和采集準備的。)

最后,登錄后臺,在系統-系統基本參數-其它選項中,自動摘要長度,改成500即可,也就是和之前修改的字符數一致即可。

完成上述修改后,我們再到頻道列表頁,通過標簽調用即可,示例標簽如下:

{dede:list typeid='' row='5' titlelen='100' orderby='new' pagesize='5'}
<h3><a href='[field:arcurl/]'>[field:title/]</a></h3>
<p>[field:description function='cn_substr(@me,500)'/]...</p>
{/dede:list}

通過以上方式,我們就實現了調用的文章摘要字符為500字符,完全突破了文章摘要250字符的系統限制,為網頁布局提供了更加廣闊的空間。

0
首頁
案例
關于
聯系
凯时平台