在使用dedecms5.7 时,当在任何页面调用文章列表时,会发现,默认的标签或向导生成的列表标签都可以显示截取标题,但并不能在title属性里标注完整标题,不便于搜索引擎正确收录。
而网上许多是更改源代码办法,其实,直接通过dedecms标签中运行脚本功能是可以实现的,不需要修改源代码。
在网上也有提供了类似的标签脚本功能,但实际上根本没有办法运行,不清楚是不是他们发错了,还是由于版本原因。我在这里,把正确的方式写下来。方便大家调用 。
{dede:arclist row='6' titlelen='200' orderby='pubdate' typeid='18' idlist='' channelid='1'}
<span class="title"> <a href="[field:arcurl /]" [field:title runphp="yes"]if(strlen("@me")>34) @me = "title='".@me."'"; else @me = '';[/field:title] >[field:title function='(strlen("@me")>34 ? cn_substr("@me",34)."..." : "@me")' /]</a></span><br/>
{/dede:arclist}
说明,在dede:arclist一行中的 titlelen='200'这个属性不能少,并且值越大越好,最好与你数据库中设置的最大值相符。
<a href="[field:arcurl /]" [field:title runphp="yes"]if(strlen("@me")>34) @me = "title='".@me."'"; else @me = '';[/field:title] >
这一行中[field:title runphp="yes"]前有空格,第一个@me = "title='".@me."'";是这样写,意思是,如果大于约定长度,就给当前位置的值加一个title=再紧接输入完成标题。
而这里完整标题长度受到dede:arclist中的titlelen限制的。