DEDECMS5.5/5.6/5.7列表页调用TAG标签(热门标签)的两种方法
DEDECMS5.5/5.6/5.7列表页调用TAG标签的两种方法:
一、DedeCMSv5.6及其以前版本:
dedecms默认在列表是无法调用tag标签的,经过各位版主们的帮助,现给大家提供出2种方法。
方法1:
在列表需要的位置加入下列代码:
- [field:id runphp=yes]
- $tsql = new DedeSql(false);
- $tags = '';
- $tsql->SetQuery("Select i.tagname From dede_tag_list t left join dede_tag_index 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['tagname'])."'>".$row['tagname']."</a>";
- }
- @me=$tags;
- [/field:id]
方法2:
在inc_functions.php文件里加入下列代码:
- function listtag($aid){ $tsql = new DedeSql(false); $tags = ''; $tsql->SetQuery("Select i.tagname From dede_tag_list t left join dede_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)"/] 标记。
二、DedeCMSv5.7版本:
前面的调用代码在5.6升级到5.7的系统里可以正常使用,但是全新安装的5.7系统里貌似不能用。
测试发现,dedecms v5.7版本直接使用标签:[field:id function=GetTags(@me)/] ,就可以调用出来了。只不过不带链接的,如果需要链接,请注释掉include\helpers\archive.helper.php文件的130行: $tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
用下面语句替换,当然你也可以加入自己的样式:$tags .= "<a href='/tags.php?/".urlencode($row['tag'])."/'>".$row['tag']."</a> ";
清风明月本无价,近水远山皆有情。