Skip to main content
 当前位置:seo培训 > 织梦cms >

织梦dedecms把tag页url去掉中文替换成id

2020-11-20 17:21:011072SEOer

默认情况下,dede的tag页url含有中文关键词,例如:

http://域名/tags.php?/南京seo培训/

虽然现在百度已经能够识别中文url,但是用户体验还是没有英文的好,所以这里我们可以把它换成tagid


解决方法教程:

1、找到打开/include/taglib/tag.lib.php

在87行找到: $row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
改成:$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['id'])."/";

2、找到打开/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就会变成:http://域名/tags.php?/10/
由于TAG替换成了ID,原有的调用方法有些变化,访问的tag列表如果用{dede:field.title/}调用的是ID,这不友好,下面是修改

3、找到打开/include/arc.taglist.class.php
找到:
//设置一些全局参数的值
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'];

4、找到打开/include/helpers/archive.helper.php
这里是增加了绝对路径的修改。
找到:
$query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
   $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
}
 
修改为:
 
$query = "SELECT tid,tag FROM `dede_taglist` WHERE aid='$aid' ";
$dsql->Execute('tid',$query);
while($row = $dsql->GetArray('tid'))
{
   $tags .= "<a href='".$GLOBALS['cfg_basehost']."/tags.php?/".urlencode($row['tid'])."/'>".$row['tag']."</a>";
}


下面是tag标签的调用方法

调用当前内容页TAG标签带链接:
{dede:tag row='100' sort='new' getall='0'}
<a target="_blank" href='[field:link/]'>[field:tag /]</a>
{/dede:tag}
 
首页列表页调用文章tag标签带链接:
[field:id function=GetTags(@me)/] 
 
调用全站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标签: