DedeCMS织梦TAG的URL替换成ID
DedeCMS V5.7中的TAG标签的URL一般是
域名/tags.php?/%B0%D9%B6%C8%BF%EC%D5%D5/做成TAG伪静态修改参考文章《DedeCMS实现TAG伪静态(万网虚拟主机)》,中文字符的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/12/很多人设计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 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}
☉首先声明,只要是我们的vip会员所有源码均可以免费下载,不做任何限制
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
☉本站的源码不会像其它下载站一样植入大量的广告。为了更好的用户体验以后坚持不打水印
☉本站只提供精品源码,源码在于可用,不在多!!希望在这里找到你合适的。
☉本站提供的整站程序,均带数据及演示地址。可以在任一源码详情页查看演示地址
☉本站所有资源(包括源码、模板、素材、特效等)仅供学习与参考,请勿用于商业用途。
☉如有其他问题,请加网站客服QQ(984818011)进行交流。
相关教程:
- 织梦dede首页列表页获取文章对应的tag标签
- 织梦dede导航栏目顶级和二级判断二级输出不同url
- 织梦dede标签array runphp静态生成乱码BUG解决方法
- 织梦dede如何禁止会员发布文章内容带超链接
- 织梦ajax跨域提交自定义表单和跨域验证码问题
- 织梦CMS MIP文章内容页图片适配百度MIP规范
- 织梦CMS时间格式实现XX秒前、XX分钟前、XX天前
- 织梦DedeCMS更新系统缓存增加清理沉余缓存的功能
- 织梦CMS让channelartlist标签支持currentstyle属性的
- 织梦dede自带编辑器替换百度ueditor编辑器
- 织梦DEDECMS整站动态化或整站静态化设置方法
- 织梦dede 模板路径templets目录都有什么?