POST TIME:2018-02-04 22:30
為了網站的美觀,我們又是需要將標題長度限制在某個長度范圍之內,對長度超出限定范圍的字用省略號代替,這是一個相當不錯的想法,具體做法有兩種。
比如調用的字段為test
方法一:運行php法..
[field:test runphp=yes]
@me=substr(@me,截取字節)
[/field:test]
方法二:調用內置函數法
[field:test function='cn_substr(@me,截取字節)'/]
兩種方法其實差不多的.
第二種方法更適合中文的截取.是dedecms封裝好的內置函數
效果比第一個要好的多..
一、用CSS控制,這種方法對任何語言架構的系統都適用,因為這個和程序語言無關,而且這樣的做法對搜索引擎來說也是非常友好的,所以強烈推薦使用這種方法,具體做法如下:
這里是控制標題的CSS代碼:
.li {list-style:none;
width:260px; //這個就是用來控制顯示的標題長度
white-space:nowrap;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
overflow: hidden;
}
例如在DedeCMS里這樣調用標題既可實現:
{dede:arclist row=8 titlelen=126 orderby=pubdate typeid=8}
<li><a href="[field:filename /]" title="[field:title function=html2text(@me)/]" >[field:title/]</a></li>
{/dede:arclist}
二、用PHP程序代碼實現標題長度的截取,這種方法對搜索引擎不是很友好,酌情使用,代碼如下:
{dede:arclist row=6 typeid=2 titlelen=50}
<li><span class="box_r">[field:pubdate function="MyDate('m-d',@me)"/]</span>[[field:typelink/]]<a href="[field:arcurl/]">[field:title function='(strlen("@me")>50 ? cn_substr("@me",50)."…":"@me")'/]</a></li>
{/dede:arclist}