DEDECMS是一款非常灵活的内容管理系统(CMS),尽管在使用过程中可能会遇到各种问题,但如果配置得当,它仍然可以成为一套完美的解决方案。最近,博主经常被问到关于栏目标题中斜杠的处理问题,例如如何去掉栏目标题中的斜杠,或者直接隐藏一级栏目名称。今天,张显辉个人博客将针对这些问题进行总结和整理,希望能为大家提供帮助。

目标是将标题格式改为:“二级栏目_网站名称”,这样在列表页调用 {dede:field name='typename'/} 时,只会显示二级栏目的名称,而不会包含斜杠或一级栏目的文字。

以下方法已在DEDECMS 5.7版本中测试可用:


1. 修改官方默认的排列方式:
打开文件 include/typelink.class.php,找到第164行:

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

将其修改为:

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

通过以上修改,可以去掉前面的一级栏目部分。

如果需要进一步调整标题格式,还可以参考以下方法:


2. 修改模板中的标题标签:
原代码:

<title>{dede:field.title/} – {dede:global.cfg_webname/}</title>

修改为:

<title>{dede:field.title function='ereg_replace(" – "," – ",@me)'/} – {dede:global.cfg_webname/}</title>
    

完成上述修改后即可实现所需效果。

如果您对栏目间的连接符不满意,可以尝试以下方法:


3. 修改栏目间的连接符:
打开文件 include/arc.listview.class.php,找到第53行:

$this->Fields['title'] = ereg_replace("[<>]"," / ",$this->TypeLink->GetPositionLink(false));

将其中的“/”删除,并保留一个空格 " "。
    

这样可以在模板标题标签部分自定义各级栏目间的连接符。

最后,为了优化文章栏目的SEO效果,可以在模板中将标题标签替换为 {dede:field.seotitle /}。

* 注意:如果行号不准确,请使用Ctrl+F查找相关代码,以避免修改错误。

希望这些方法能帮助您更好地管理和优化DEDECMS站点!