为了网站的美观,我们又是需要将标题长度限制在某个长度范围之内,对长度超出限定范围的字用省略号代替,这是一个相当不错的想法,具体做法有两种。

比如调用的字段为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}