欢迎来到路由器窝!

Dede列表页调用TAG标签的方法

浏览次数:

作者: 路由器窝

信息来源:

更新日期: 2017-07-07 17:58

文章简介

整理了以下几种方法供大家使用:1、tag标签的语法解释基本语法:{dede:tag row=30 sort=new getall=0} a href=[field:link/][field:tag /]/a {/dede:tag}参数说明:row=30

  • 正文开始
  • 相关文章
整理了以下几种方法供大家使用:
1、tag标签的语法解释
基本语法:
{dede:tag row='30' sort='new' getall='0'}
  <a href='[field:link/]'>[field:tag /]</a>
  {/dede:tag}
参数说明:
row='30' 调用条数为30条
sort='new' 排序方式month,rand,week
getall='0' 获取类型0为当前内容页TAG标记,1为获取全部TAG标记。
底层模板字段:link,tag
2、最新tag标签调用
{dede:tag row='30' sort='new'}
  <a href='[field:link/]'>[field:highlight/]([field:result/])</a>
  {/dede:tag}
3、当月热门tag标签调用
{dede:tag row='30' sort='month'}
  <a href='[field:link/]'>[field:tagname/]([field:result/])</a>
  {/dede:tag}
4、随机tag标签调用
{dede:tag row='60' sort='rand'}
  <a href='[field:link/]'>[field:highlight/]([field:result/])</a>
  {/dede:tag}
5、采集热门Tags,刷新一次变换一次
模板代码:
{dede:tag row='10' sort='month' }
  <a class="tag" href='[field:link/]'>[field:tagname/] </a>
  {/dede:tag}
  <script language="javascript">
  <!--
  var tag_a=document.getElementsByTagName("a");
  for( i in tag_a){
  var offset=6;
  var num=4;
  if(tag_a.className=="tag"){
  var rnd=Math.ceil((num+offset)*Math.random());
  if(rnd>offset){
  tag_a.className="tag"+(rnd-offset);
  }
  }
  }
  //-->
  </script>
CSS代码:
.tag1 { color:#339900;font-weight:bold;}
  .tag2 { color:#e65730;}
  .tag3 { color:#00b9da;}
  .tag4 { color:#FE3981;font-weight:bold;font-size:14px;}
6、文章页tag标签调用
{dede:tag table='dede_search_keywords' sort='keyword' row='2' if=''}
  <a class=blue href='[field:link/]' target=_blank>[field:tag /]</a>
  {/dede:tag}
或
{dede:field name='keywords' runphp='yes' }
  if(!empty(@me)){
  $kws = explode(' ',@me);
  @me = "";
  foreach($kws as $k){
  @me .= "<a href='/tag.php?/$k/'>$k</a> ";
  }
  @me= str_replace('+', ' ',trim(@me));
  }
  {/dede:field}
7、列表页调用TAG标签的两种方法
dedecms默认在列表是无法调用tag标签的(现给大家再提供以下不同版本的tag标签调用方法:
(1)、dedecms5.7版本的调用方法
首先,找到include\helpers\archive.helper.php文件(注:有朋友会疑问,主页和频道、列表应该加的是不同的调用,不过本人开始用列表页测试,成功;加入主页后测试也是成功显示的,所以我就没再继续深究下去了,另外,这个文件的内容更改,在后台文件是更改不了的,提示是注入sql,所以要在ftp中找到这个文件进行更改才行0。)
在底部增加:
function GetTags_list($aid)
      {
          global $dsql;
          $tags = '';
          $query = "SELECT tag FROM `ma_taglist` WHERE aid='$aid' ";
          $dsql->Execute('tag',$query);
          while($row = $dsql->GetArray('tag'))
          {
          $tags .= ($tags=='' ? "<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>" : ','."<a href='/tags.php?/".urlencode($row['tag'])."'>".$row['tag']."</a>");
          }
          return $tags;
      }
然后,在列表需要调用tag标签的位置添加:
[field:id function=GetTags_list(@me)/]
即可完成。
(2)、dedecms5.6版本的调用方法
方法一:
直接在模板需要的位置加入以下代码即可:
[field:id runphp=yes]
  $tsql = new DedeSql(false);
  $tags = ”;
  $tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’@me’”);
  $tsql->Execute(‘t’);
  while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
  $tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”;
  }
  @me=$tags;
  [/field:id]
注:这一步dede5.7版本里面实现不了。
方法二:
打开dedecms根目录include/common.func.php,在最底部的“?>”之前加入以下代码:
//列表页调用tag的方法
  function listtag($aid)
  {
  $tsql = new DedeSql(false);
  $tags = ”;
  $tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’$aid’”);
  $tsql->Execute(‘t’);
  while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
  $tags .= “<a href=’/tags.php?/”.urlencode($row['tag']).”/’>”.$row['tag'].”</a> “;
  }
  return $tags;
  }
  {dede:field.id runphp=yes}
  $tsql = new DedeSql(false);
  $tags = ”;
  $tsql->SetQuery(“Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid=’@me’”);
  $tsql->Execute(‘t’);
  while($row = $tsql->GetArray(‘t’,MYSQL_ASSOC)){
  $tags .= “<a href=’/tag.php?/”.urlencode($row['tag']).”‘>”.$row['tag'].”</a>”;
  }
  @me=$tags;
  {/dede:field.id}
添加代码后,在列表页可以使用:
{dede:field.id function=”listtag(@me)”/}
来调用tag标签。
方法三:
在include/inc_functions.php文件里加入:
function listtag($aid){
  $tsql = new DedeSql(false);
  $tags = '';
  $tsql->SetQuery("Select i.tagname From xkzzz_tag_list t left join xkzzz_tag_index i on i.id=t.tid where t.aid='$aid'");
  $tsql->Execute('t');
  while($row = $tsql->GetArray('t',MYSQL_ASSOC)){
  $tags .= "<a href='/tag.php?/".urlencode($row['tagname'])."'>".$row['tagname']."</a>";
  }
  return $tags;
  }
然后在列表页相应位置加入:
[field:ID function="listtag(@me)"/]
就可以调用出来了,只不过这个方法也需要改动程序文件,看不懂代码的朋友,慎用!
8、首页调用文章TAG标签的方法
如果你网站用的是dedecms v5.7版本可直接使用标签:
[field:id function=GetTags(@me)/]
就可以调用出来了,只不过不带连接的,要想给tag标签加上链接,还需要进行以下操作:
首先,注释掉include/helpers/archive.helper.php文件的130行,
$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
用下面语句替换,当然你也可以加入自己的样式:
$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."/'>".$row['tag']."</a> ";
再再下面空白处加入以下代码:
if ( ! function_exists('GetTagk')){
  function GetTagk($aid) 
  {
  global $dsql; 
  $tagk = ''; 
  $query = "SELECT tag,aid FROM `ma_taglist` WHERE aid='$aid' ";
  $dsql->Execute('tag',$query);
  while($row = $dsql->GetArray('tag'))
  { 
  $tagk .= ($tagk=='' ? $row['tag'] : ','.$row['tag']);
    }
    return $tagk;
    }
  }
然后,打开dede/article_edit.php找到:
$tags = GetTags($aid);
在下面加上:
$tagk = GetTagk($aid);
再打开dede/templets/article_edit.htm再调用tag标签那里把:
<?php echo $tags; ?>
改成:
<?php echo $tagk; ?>
这样调用的时候可以调用tag,后台显示也能正常显示。

转载请注明:DEDEcms» Dede列表页调用TAG标签的方法

标签:
  • DEDE双搜索。直接覆盖适用于5.7 utf8
    265阅读
    双搜索.rar
  • 内容页图片地址替换,替换成PC图片地址方法
    249阅读
    修改目录include下的文件extend.func.php,在最后面添加一个函数 function replaceurl($newurl){$newurl=str_replace(src=/uploads/allimg/,src=http://www.zngps.com/uploads/allimg/,$newurl...
  • 百度编辑器过滤TABLE
    353阅读
    打开编辑器的配置文件ueditor.config.js 路径:public/plugins/Ueditor/ueditor.config.js 找到 xssFilterRdives: true inputXssFilter: true outputXssFilter:true 改成 xssFilterRdives: f...
  • DEDE列表分页不横向显示,dede分页竖更改成横的处理方法
    188阅读
    查找/include/arc.listview.class.php以及arc.archives.class.php文件 用EditPlus打开 按Ctrl+H键,查找 li 全部替换为空 /li 全部替换为空 li class=\thisclass\ 全部替换为空 保存,覆盖原文件即可
  • dedecms织梦自定义函数递归拿所有分类(无限分类)
    261阅读
    /*** 取出所有分类* @param int $channel 频道ID* @return string* 调用{dede:global.getalltype function=getalltype()/}*/function getalltype($channel=0,$line=10){$line = empty...
  • 专题列表调用
    204阅读
    {dede:arclist flag=c type=spec titlelen=40 row=10 orderby=pubdate} lia href=[field:arcurl/] target=_blankimg src=[field:litpic/] alt=[field:title/]span[field:ti...
  • DEDE手机站点绑定二级域名以及系统相关设置
    238阅读
    操作目标要给http://www.zngps.com/m 绑定手机域名,使其成为http://m.zngps.com 。 第一:首先建立一个独立的站点。目录指向/M/目录并绑定二级手机域名m.zngps.com 第二:添加手机访问域名,在系统设置里面添加一个字段{dede:global.cfg_mobileurl/}设...
  • DEDE后台密码更改工具
    238阅读
    DEDE后台密码更改工具下载地址 dede超级密码 送给那些忘记dedecm后台密码的管理员们,请勿用于非法目的 有时候你的网站管理员密码忘记了.... 找回一时可能很麻烦... 现在好了...上传超级密码php.php到网站根目录....注意根据程序有gbk和utf-8之分上传错位是
  • DEDECMS 软件下载页 多图展示设置
    218阅读
    最终效果图 DEDECMS 软件下载页 多图展示设置 这个就是在软件介绍下面增加了一个页面截图展示区 由于织梦不能把发布文章内容里面的图片单独调用出来 本人就想了一个笨办法,下面本人以软件发布区,修改软件文章为例: 第一步: 首先找到后台目录下的soft_edit.ph
  • dede让channelartlist标签支持currentstyle属性顶级不同样式
    154阅读
    打开include\taglib\channelartlist.lib.php 找到 $pv-Fields[typeurl] = GetOneTypeUrlA($typeids[$i]); 在此行代码下方增加以下代码: if($typeids[$i][id] == $refObj-TypeLink-TypeInfos[...
上一页:内容页图片地址替换,替换成PC图片地址方法
下一页:列表页调用每一篇文章的tag
最近更新作品
城市联动提交表单
更新时间:2020-11-17

169人已经看过了!

统计栏目文章数量有的显示数量没有显示0
更新时间:2020-11-15

135人已经看过了!

自定义表单列表添加全选
更新时间:2020-10-19

157人已经看过了!

自定义表单展现样式
更新时间:2020-10-19

165人已经看过了!

Body里面多了个&amp;#65279字符,空白一行解决办法
更新时间:2021-01-25

168人已经看过了!

自定义证书添加图片
更新时间:2020-07-15

235人已经看过了!

dede导出证书查询数据到excel
更新时间:2020-06-19

287人已经看过了!

dedecms--会员信息导出excel表格
更新时间:2020-06-19

171人已经看过了!

dede 获取图集里面图片的数量
更新时间:2020-05-25

176人已经看过了!

织梦栏目做成列表分页(小说列表)
更新时间:2020-05-08

215人已经看过了!