首页 > CMS > 织梦DEDE > 正文

dedecms调用tag标签实现方法与详解分析

2024-07-12 08:43:35
字体:
来源:转载
供稿:网友

tag标签是很多站长用来做排名关键字的一个非常重要的标识了,我今天在做一个站时使用了dedecms了,这个系统我本不怎么了解,在调用tag标签时碰到不少问题了,下面PHP教程小编就整理一下在开发使用dedecms中tag标签使用例子吧。

一,调用本站所有tag标签方法

这个官方有说明

方法1,代码如下:

{dede:tag type='current'/}

生成后:tag标签(个数)

方法2,代码如下:

  1. {dede:tag sort='new' getall='0' row=60 } 
  2. <a target="_blank" href='[field:link/]'>[field:tag /]</a> 
  3. {/dede:tag} 

补充:代码如下:

  1. 最新标签 
  2. {dede:tag row='30' sort='new'} [field:tag /]{/dede:tag} 
  3. 当月热门标签 
  4. {dede:tag row='30' sort='month'} [field:tag /] {/dede:tag} 
  5. 随机标签 
  6. {dede:tag row='60' sort='rand'} [field:tag /]{/dede:tag} 

注意:

row:调用条数。

sort:排序方式。参数有:month,rand,week, new。

getall:获取类型。参数有:0和1,其中0为当前内容页或栏目页tag,1为获取全站tag。

二,调用文章当前页面tag标签

找到文章模板加入{dede:field.tags/}这个标签即可,但是dedecms默认的Tag标签是没有链接的

给Tag标签加超链接

大家找到网站跟目录下的/include/helpers/archive.helper.php,找到120行左右.

  1. if ( ! function_exists('GetTags')) 
  2.     function GetTags($aid
  3.     { 
  4.         global $dsql
  5.         $tags = ''
  6.         $query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' "
  7.         $dsql->Execute('tag',$query); 
  8.         while($row = $dsql->GetArray('tag')) 
  9.         { 
  10.             $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']); 
  11.         } 
  12.         return $tags
  13.     } 
  14. //替换成以下代码: 
  15. if ( ! function_exists('GetTags')) 
  16.     function GetTags($aid
  17.     { //Vevb.com 
  18.         global $dsql
  19.         $tags = ''
  20.         $query = "SELECT tag FROM `dede_taglist` WHERE aid='$aid' "
  21.         $dsql->Execute('tag',$query); 
  22.         while($row = $dsql->GetArray('tag')) 
  23.         { 
  24.             $tags .= ($tags=='' ? '<a href=/tags.php?/'.$row['tag'].' target=_blank>'.$row['tag'].'</a>'','.' 
  25. <a href=/tags.php?/'.$row['tag'].' target=_blank>'.$row['tag'].'</a>');        } 
  26.         return $tags
  27.     }} 

三,调用本栏目tag标签方法

打开DEDECMS根目录include/common.func.php

在最底部 ?> 前面加入以下代码:

  1. function listtag($aid)  
  2. {  
  3. $tsql = new DedeSql(false);  
  4. $tags = '';  
  5. $tsql->SetQuery("Select i.tag From dede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid='$aid'");  
  6. $tsql->Execute('t');  
  7. while($row = $tsql->GetArray('t',MYSQL_ASSOC)){  
  8. $tags .= "<a href='/tags.php?/".urlencode($row['tag'])."/'>".$row['tag']."</a> ";  
  9. }  
  10. return $tags;  

2.然后在文章页可以使用 21

{dede:field.id function="listtag(@me)"/}

总结:对于文章调用当前下面的tag标签我们dedecms自带的不太适合现在网站优化的一些进度了,所以我们需要进行改进了.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表