dedecms默认认列表标题格式是:
顶级栏目/ 一级栏目_网站标题
从这个形式可以看出一级栏目没有在整个标题的最前面,按照常规的说法,越在标题前面的越重要,权重也越高,所以理想的标题形态应该是这样的:
一级栏目/ 顶级栏目_网站标题
本身当前栏目就是一级栏目,应该在前面,同样也符合大众阅读的习惯。具体操作如下:
打开
\include\typelink.class.php
找到代码
$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;
改成如下:
$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];
然后,更新完栏目后就出现改:一级栏目/顶级栏目_网站标题 这类形式,当然层级越多也是符合这个格式的。
完成了,但是看到上面的“/”分隔符不是我们常见的下划线"_"或者数线"|"等形式,感觉怪怪的,当然无关痛痒这些分隔符只是要搜索引擎分隔字符串的。为了视觉效果可以将这个分隔符做优化,只需一个步骤,打开文件:
\include\arc.listview.class.php
找到代码:
$this->Fields['title'] = preg_replace("/[<>]/", "/", $this->TypeLink->GetPositionLink(false));
将"/"改成"_"或者你想要的分隔符即可,即:
$this->Fields['title'] = preg_replace("/[<>]/", "_", $this->TypeLink->GetPositionLink(false));
至此大功告成,最终的标题是:
一级栏目_顶级栏目_网站标题
当然,分页太多,这样每个页面的标题都是上述的形式了,为了有差异和不同,只需要在列表页模板写标题的时候用标签
{dede:field.pagexx /} //显示分页页码
即可,例如:
<title>{dede:field.title/}_{dede:global.cfg_webname/}/第{dede:field.pagexx /}页</title>