欢迎访问融科网络!我们专注于郑州网站建设郑州网站制作郑州网站设计郑州做网站等相关服务!
营销之道 干货分享
了解企业新动态,分享前沿的营销推广干货,成长路上,我们携手同行

编程代码

DedeCMS织梦TAG的网址替换成ID

标签: 作者:融科网络 | 点击:
05

Nov
2019

导语
DedeCMSV5.7中的TAG标签的网址一般是 域名/tags.php?/%B0%D9%B6%C8%BF%EC%D5%D5/ 做成TAG伪静态修改参考新闻《DedeCMS实现TAG伪静态(万网网站空间)》,中文字符的网址一样能被baidu和google识别,但介于中
 

DedeCMS V5.7中的TAG标签的网址一般是

域名/tags.php?/%B0%D9%B6%C8%BF%EC%D5%D5/

做成TAG伪静态修改参考新闻《DedeCMS实现TAG伪静态(万网网站空间)》,中文字符的网址一样能被baidu和google识别,但介于中文网址路径过长可以替换为该TAG的ID。

打开/include/taglib/tag.lib.php

在差不多87行找到

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

将其改成

$row['link'] = $cfg_cmsurl."/tags/".urlencode($row['id'])."/";  

这样就把每个动态的tag标签生成了如:

域名/tags/12/

很多人设计TAG标签网址后面有“.html的”后缀,其实直接用斜杠“/”更好,代表这是一个目录。

打开/include/arc.taglist.clss.php,找到(下面出现的分隔符请去掉) $this->TagInfos = $this->dsql->GetOne("Select * From `#分隔符@__tagindex` where tag like '{$this->Tag}' ");  

修改为

$this->TagInfos = $this->dsql->GetOne("Select * From `#分隔符@__tagindex` where id like '{$this->Tag}' ");

由于TAG替换成了ID,原有的调用办法有些变化,访问的tag列表如果用{dede:field.title/}调用的是ID,这不友好,下面是修改及调用办法

打开/include/arc.taglist.class.php,找到 //设置一些全局参数的值 foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v;  

下面增加

//by dede58.com $s = $this->dsql->GetOne("Select tag From `#分隔符@__tagindex` where id = '{$this->Tag}' "); $this->Fields['tag'] = $s['tag']; $this->Fields['title'] = $s['tag']; //end  

往下继续找到

$this->TagInfos = $this->dsql->GetOne("Select * From `#分隔符@__tagindex` where tag like '{$this->Tag}' ");  

修改为

$this->TagInfos = $this->dsql->GetOne("Select * From `#分隔符@__tagindex` where id like '{$this->Tag}' ");  

一般在站内都是用GetTags()函数调用,但这个函数并没有对应的ID。查看了一下taglist表,发现用的是tid。

[field:id function=GetTags(@me)/],调出来的会是/tags// 打开/include/helpers/archive.helper.php,找到 $query = "SELECT tag FROM `#分隔符@__taglist` WHERE aid='$aid' "; $dsql->Execute('tag',$query); while($row = $dsql->GetArray('tag')) { $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']); }  

这里增加了绝对路径的修改。

$query = "SELECT tid,tag FROM `#分隔符@__taglist` WHERE aid='$aid' "; $dsql->Execute('tid',$query); while($row = $dsql->GetArray('tid')) { $tags .= "<a href='".$GLOBALS['cfg_basehost']."/tags/".urlencode($row['tid'])."/'>".$row['tag']."</a>"; }  
调用全站TAG标签带链接 {dede:tag row='100' sort='new' getall='1'} <a target="_blank" href='[field:link/]'>[field:tag /]</a> {/dede:tag}  

有几个参数需要了解

row:调用条数 sort:排序方式 month,rand,week getall:获取类型 0 为当前内容详细页TAG标记,1为获取全部TAG标记  
调用当前内容详细页TAG标签带链接 {dede:tag row='10' sort='new' getall='0'} <a target="_blank" href='[field:link/]'>[field:tag /]</a> {/dede:tag}  
首页、栏目页调用新闻TAG标签带链接 {dede:arclist row='10' titlelen='80'} <a target="_blank" href=http://www.dede58.com/a/dedejq/"[field:link/]">[field:id function=GetTags(@me)/]</a> {/dede:arclist}  

TAG栏目页也是用的上述办法。

TAG详情页调用TAG标签

不能直接用{dede:field.title/}调用TAG标签了,这时调出来的是该TAG的ID,需要用SQL的办法调用,下面的橙色表前缀请自行更换。

{dede:sql sql="select tag from #分隔符@__tagindex where id=~title~"}[field:tag/]{/dede:sql}  

郑州融科网络专注于企业网站建设、网站制作、高端网站设计,郑州荥阳、上街做网站就找融科网络!
本文章网址:http://www.ppssdd.com/code/14850.html。转载请保留出处,谢谢合作!

全网(营销型+响应式)专业定制

快速搭建高询盘+营销独立站

微信扫一扫 添加微信

推荐分享,免费SEO诊断

扫码加好友,即送价值1880元的SEO优化教程

(网站没排名,轻松让关键词上首页!专注H5企业建站+网站优化推广)

上一篇:DedeCMS织梦增加TAG属性分类及调用

下一篇:DedeCMS织梦专题页调用办法

  • 网站建设咨询
  • 网站建设案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 151-3895-5886
  • 品牌网站建设定制
  • 营销型网站建设定制