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}