首页 > CMS > 织梦DEDE > 正文

DedeCMS把TAG的URL替换成ID的方法

2024-07-12 08:47:32
字体:
来源:转载
供稿:网友
这篇文章主要为大家详细介绍了DedeCMS把TAG的URL替换成ID的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴。

前面刚给大家讲了《URL路径中含中文对SEO有多少影响》,其中361源码给大家分析了中文URL路径对网站SEO的影响,不少朋友看了看了以后联系小编说织梦dedecms中TAG标签也是中文形式的,问小编该如何处理。下面361资源就带大家来看看到底是织梦回事。

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

http://域名上面/tags.php?/%B0%D9%B6%C8%BF%EC%D5%D5/

这个路径中有2个问题,第一,这是个动态的路径tags.php?/。第二,这是一个含中文网址的路径:%B0%D9%B6%C8%BF%EC%D5%D5。以上2点都是不利于SEO的。这里有不少的处理方法,可以把织梦dedecms的tags伪静态化,也可以把路径转成ID的形式,今天主要给大家讲转成ID的方法。

DedeCMS把TAG的URL替换成ID的方法//设置一些全局参数的值foreach($GLOBALS['PubFields'] as $k=>$v) $this->Fields[$k] = $v;

 下面增加

//by vevb.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/carchive.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,weekgetall:获取类型 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="[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}

到这里就讲完了,希望361源码的努力能帮助到需要的朋友。我为人人,人人为我。

以上就是DedeCMS把TAG的URL替换成ID的方法的全部内容,希望对大家的学习和解决疑问有所帮助,也希望大家多多支持武林网。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表