织梦tag列表页根据tag的id获取tag内容 tag列表页地址改变方法

织梦tag列表页默认是将tag标签名经过转码后输出,如果tag很长会造成显示的网址特别长,不管是后期外链还是自己看着都很别扭,网上有静态化的方法,但我不喜欢静态的方式,只是想将tag显示地址变的简洁,下面给出修改前和修改后的地址区别:

  • tag地址修改前
http://www.xiuyuanxi.com/tags.php?/%D6%AF%C3%CEdedecms/

  • tag地址修改后
http://www.xiuyuanxi.com/tags.php?/1/

如果你也想修改为以上的显示路径,按下面方法简单修改即可成功:

第一步


include -> taglib -> tag.lib.php 文件修改

找到85行左右

$row['keyword'] = $row['tag'];
$row['tag'] = dede_htmlspecialchars($row['tag']);
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";

修改为

$row['id']= $row['id'];
$row['keyword'] = $row['tag'];
$row['tag'] = dede_htmlspecialchars($row['tag']);
$row['link'] = $cfg_cmsurl."/tags.php?/".$row['id']."/";

这个文件中,我们添加了一行代码,并修改了其中一处。
这时候我们运行tags.php,会发现tag路径已经改成我们自己想要的了,但点击后还是会出错,因为我们还需要为传输进去参数的地方进行修改,我们接着第二步。

第二步


incluede -> arc.taglist.class.php 文件修改

找到64行左右


//设置一些全局参数的值
foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v;

在下方添加

$s = $this->dsql->GetOne("Select tag From `dede_tagindex` where id = '{$this->Tag}' ");
$this->Fields['tag'] = $s['tag'];
$this->Fields['title'] = $s['tag'];

上面代码的作用是根据tag的id读取出来tag标签名称,方便我们的导航条等位置显示。

紧挨着上面修改的下方两到三行位置,找到

$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 = '{$this->Tag}' ");

至此我们的修改工作已经完成,你可以放心使用了。

评论

大侠名号:   验证码: 点击我更换图片  

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND