dede tag不以关键词作为url以数字作为url方法修改

发布时间 2023-07-14 11:42:52作者: asqq8
dede tag不以关键词作为url以数字作为url方法修改

打开/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}