对搜索用户来说,标题是一个网页最直观的认知渠道和展现方式,也是吸引用户点击搜索结果进入落地页的关键因素。 
 
    织梦功能的确非常强大的,各种标签、自定义功能也非常灵活。但是有一个问题一直困扰着我,那就是二级栏目页面的title是“一级栏目名称/二级栏目名称_网站名称”的显示形式,尤其是中间的那个“/”。
 
    尤其百度也在18年的11月份官宣发布了百度搜索网页标题规范。明确提出列表页中的二级栏目或三级栏目间的连接符号规定为中杠"-",形式为:“主题 - 属性1 - 属性2 - 站点名”。比如微时微刻网站平台的栏目的设置为:网站SEO优化 - 站长学院 - 微时微刻网站服务平台
 
 
  总想如何改改源文件去掉这个斜杠或弄成其它形式,可是看了半天代码也不知道该在哪里改。刚好微时微刻最近也用到这个,所以今天就在这里分享下。
 
  修改方法:
 
  打开include/arc.listview.class.php,大约53行。
 
    $this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));
 
    替换为:
 
    $this->Fields['title'] = ereg_replace("[<>]"," - ",$this->TypeLink->GetPositionLink(false));
 
    然后打开网页模板里的列表页和内容页,修改掉之前织梦默认的展示形式。

   最后在织梦后台环境“系统”-》“系统基本参数”-》“核心设置”-》“栏目位置的间隔符号:”处删除符号前后空格。到这里标题连接符就更改完了
 
    列表页标题为引用的内容:
 
    <title>{dede:field.title function='ereg_replace(" - "," - ",@me)'/} - {dede:global.cfg_webname/}</title>
 
    内容页标题为引用的内容:
 
<title>{dede:field name='title'/} - {dede:field name='position' runphp='yes'}
$tc="-"; //分隔符
$tw=$GLOBALS['cfg_list_symbol']; //调用位置分隔符
@me=html2text(@me); //去除html标签
$tf=split($tw,@me); //分解成数组
for($ta=(count($tf)-2);$ta>=1;$ta--){ //循环赋值给$tk
$tk.=trim($tf[$ta]).$tc;
}
$tk=substr($tk,0,-1);
@me=$tk; //赋值给@me
{/dede:field} - {dede:global.cfg_webname/}</title>

在多级目录下,织梦默认栏目顺序为“一级栏目_二级栏目_三级栏目 - 网站名称”,我们知道关键词越靠前越被重视,所以我们需要更改为“三级栏目_二级栏目_一级栏目 - 网站名称”

找到include/typelink.class.php文件,使用编码软件打开并找到:

$this->valuePositionName = $tinfos['typename'].$this->SplitSymbol.$this->valuePositionName;
 

把上述代码替换为:

$this->valuePositionName = $this->valuePositionName.$this->SplitSymbol.$tinfos['typename'];

 

保证文件编码没有被更改,确定更改时文件符号没有错误。