This page was saved using WebZIP 7.1.2.1052 offline browser on 10/07/21 15:44:56.
Address: /webcms/211.html
Title: 【建站技术】DedeCMS织梦中TAG的URL太长,如何替换成ID_【帝搜SEO软件】  •  Size: 39607  •  Last Modified: Mon, 04 Oct 2021 14:32:24 GMT
SEO优化|SEM推广|SMO营销|抖音优化|舆情处理
当前位置:主页 > 帝搜SEO软件学院 > 短视频推广 > 【建站技术】DedeCMS织梦中TAG的URL太长,如何替换成ID

【建站技术】DedeCMS织梦中TAG的URL太长,如何替换成ID

发布日期: 2021-07-11 20:53:55 阅读次数: 编辑:帝搜SEO软件学院

本文摘要:我们在短视频推广中,总发现url多长的问题,其实这个技术不复杂,今天我们一起来看看tag的url如何修改DedeCMS 织梦 V5.7中的TAG标签的URL一般是http://域名/tags.php?/%B0%D9%B6%C8%BF%EC%D5%D5/ 做成...

我们在短视频推广中,总发现url多长的问题,其实这个技术不复杂,今天我们一起来看看tag的url如何修改
DedeCMS 织梦 V5.7中的TAG标签的URL一般是

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

       做成TAG伪静态修改参考文章《/webcms/211.html》,中文字符的URL一样能被小红书和谷歌识别,但介于中文URL路径过长可以替换为该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.php?/45/

       很多人设计TAG标签URL后面有“.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 vi586.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="[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}

好了,这么利用seo的修改就这样完成了,生成即可


版权与免责声明 SEO排名优化SEM竞价托管SMO媒体营销WEB短视频推广, CI品牌设计 互联网整合营销推广服务商帝搜软件网络声明:如发现内容存在版权问题,烦请提供相关信息发邮件至603165717@qq.com,我们将及时沟通与处理。本站内容学习于网络所得,涉及言论、版权与本站无关。
seo厂家

SEO城市/频道推荐

热门标签/最新文章

友情链接:抖音SEO优化 小红书笔记排名 知乎搜索排名 微信搜一搜排名 抖音下拉词 抖音搜索排名 帝搜官网 帝搜软件全国技术招商