在dede系统中,我们要获取完整文档标题,但有时由于页面排版的问题,我们必须要把文档标题的字符数做以限制,那么这样一来,是<a></a>标签里面搜索引擎的索引就不是非常好了,我们要实现的方式,大概有一下两种——
一、修改DedeCms 底层模板变量
{dede:arclist row=10 titlelen=200 }
<a href="[field:arcurl/]" title="[field:title function="htmlspecialchars(@me)"/]">[field:title function="cn_substr(@me,50)"/]</a>
{/dede:arclist}
代码解释:
1.先在arclist 标记中把titlelen值设置得大一些,我这里设置的是200个字符,当然如果你的文档标题有200个汉字甚至更多的话你设置为1000也是没有问题的。
2.重要: 在模板底层变量中根据需要进行截取 A标记中的title就不需要截取了 只要做个过滤就可以了 [field:title function="cn_substr(@me,50)"/]就是直接显示出来的连接 字符长度用cn_substr函数中的第二个参数控制
PS:这种方法是在<a></a>标记的alt属性来指引搜索引擎的索引向导,对您的网站有一部分的潜在作用。
二、修改程序源文件:
1、打开include目录下inc目录下的inc_fun_SpGetArcList.php 文件
2、找到228行
$row['title'] = cn_substr($row['title'],$titlelen);
在前面增加一行
$row['fulltitle'] = $row['title']; //注释:显示完整标题
3、找到
$row['textlink'] = "<a href='".$row['filename']."'>".$row['title']."</a>";
将其替换为:
$row['textlink'] = "<a href='".$row['filename']."' title='".$row['fulltitle']."'>".$row['title']."</a>";
代码解释:
其实就是在底层模板增加了一个fulltitle标签,然后将textlink底层标签加了一个title='".$row['fulltitle']."' 我在网站上试验成功,只要是textlink标签,鼠标经过会自动显示全部标题!
三、直接用CSS定义。
实现方法于一相同,先在arclist 标记中把titlelen值设置得大一些,1000甚至2000都无所谓,然后我们通过css来定义其宽度的显示,把width固定了,然后在加上overflow-x:hidden属性即可实现上面的所有功能