打开/include/taglib/tag.lib.php 查找以下代码:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
替换为:
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['id'])."/";

(以下修改适合V56版本,V57版本请自行参照修改)然后再修改 /include/arc.taglist.class.php 找到以下代码:
$this->TagInfos = $this->dsql->GetOne("Select * From `dede_tagindex` where tag like '{$this->Tag}' ");
替换为:
$this->TagInfos = $this->dsql->GetOne("Select * From `dede_tagindex` where id like '{$this->Tag}' ");

上面的代码可以实现整站所有地方调用的tag都是用如下的url形式:
/tags.php?/1/

采用这个方法以后,默认的单独tags页面中,title也会变成id的形式,这是不友好的,需要进行如下的替换:
找到taglist.htm中的所有:{dede:field.title /},把这个替换成:
{dede:list}[field:title/]{/dede:list}
这样就可以在标题或者其他地方调用出来tags的具体名称了。
tags列表页可使用的标签完善性如下,自己diy选择性替换到所需位置:
{dede:list}<a href="[field:link/]" title="[field:title/]">[field:title/]{/dede:list}
或用以下方式调用tag名称:
{dede:sql sql="select tag from dede_tagindex where id=~title~"}[field:tag/]{/dede:sql}
本文链接:https://jinmengqiang.cn/a/202107/44.html