DEDE标题长截取加省略号,dede标题自动截取长度
时间:2014-07-09
在 过程中也许很多人会遇到这样的情况,列表标题文字太长了,想截取文字长度,同时在标题后面加省略号...,提示性的符号,这样比较友好,今天就和大家说下DEDE标题长截取加省略号,修改l的方法,
{dede:arclist titlelen='50' row='10'}
<li><a title="[field:title /]" href="[field:filename /]">[field:title function=' ( strlen("@me")>30 ? cn_substr("@me",30)."..." : "@me" ) ' /]</a></li>
{/dede:arclist}
具体的字数根据自己的要求调整即可。
还有另外一种情况,假如标题在dede中加了加粗属性,上面的截取方法截取的时候就会把加粗生成的strong标签算进字符数内,
如下一段文字
<strong>印度泰姬陵旅游攻略有哪些</strong>
如果截取30个字符,就会在源代码里这样显示
<strong>印度泰姬陵旅游攻略有哪些
如果截取32个字符,就会在源代码里这样显示
<strong>印度泰姬陵旅游攻略有哪些</
这样就会因为strong没有正常的关闭,使得网页字体全部加粗显示
经过我找各方面的资料加上上面的代码,终于解决了这个问题
{dede:arclist titlelen='50' row='10'}
<li><a title="[field:title /]" href="[field:filename /]">[field:title function=' ( strlen(Html2text("@me"))>30 ? cn_substr(Html2text("@me"),30)."..." : "@me" ) ' /]</a></li>
{/dede:arclist}
Html2text()函数是去掉html标签代码。
strlen(Html2text("@me"))函数是计算去掉html标签后字符的大小。
cn_substr(Html2text("@me"),30)函数是计算去掉html标签后截取字符的大小。