dede 截取字符长度,超出了用省略号代替

在dede做站过程中常会遇到标题过长或者描述过长,影响排版。 其实可以在程序里设定,一定字符数,太长的话加省略号,如果是新闻列表的话可以用CSS实现这种效果
在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个方法的差异并不大。
在edit页面,有一句话是:“$description = cn_substrR($description,250); ”,这句话中出现了一个熟悉的字符数“250”,这就是系统设置的文章摘要字符数的上限值。 如果是gbk编码则显示出来的就是125个字。如果是utf-8编码则是81个字。显然,我们要突破文章摘要字符数上限,肯定得拿它开刀了。是的,这里修改“250”为其他值即可,例如“500”。这里不推荐设置得过高,一个是在列表页没必要展示太多内容(展示太多内容不如直接用body了),另一个是避免数据库产生冗余。
{dede:arclist titlelen=’50’ row=’10’}

  • [field:title function=’ ( strlen(“@me”)>30 ? cn_substr(“@me”,30).”…” : “@me” ) ‘ /]
  • {/dede:arclist}
    具体的字数根据自己的要求调整即可。
    还有另外一种情况,假如标题在dede中加了加粗属性,上面的截取方法截取的时候就会把加粗生成的strong标签算进字符数内,
    如下一段文字
    印度泰姬陵旅游攻略有哪些
    如果截取30个字符,就会在源代码里这样显示
    印度泰姬陵旅游攻略有哪些
    如果截取32个字符,就会在源代码里这样显示
    印度泰姬陵旅游攻略有哪些[field:title function=’ ( strlen(Html2text(“@me”))>30 ? cn_substr(Html2text(“@me”),30).”…” : “@me” ) ‘ /]

    {/dede:arclist}
    Html2text()函数是去掉html标签代码。
    strlen(Html2text(“@me”))函数是计算去掉html标签后字符的大小。
    cn_substr(Html2text(“@me”),30)函数是计算去掉html标签后截取字符的大小。

    未经允许不得转载:Windy's Blog » dede 截取字符长度,超出了用省略号代替

    赞 (0)