在使用织梦dedecms建站中,很有可能需要用到在首页根据调用某个栏目下的TAG,也就是是按栏目调出TAG,这里就需要用到DEDE 的SQL运行功能
{dede:sql sql="select * from dede_archives a left join dede_taglist t on a.id=t.aid where a.typeid='22' limit 4"}
<a href='/tags.php?[field:tag/]' target="_blank" title="[field:tag /]">[field:tag /]</a>
{/dede:sql}
这里typeid=‘22’可以改成你实际要调用的栏目ID,limit 4这个是调用多少个TAG出来
以上的代码是随便哪里都可以用
如果是要再栏目页调用,还有一个代码
[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]
如果是DEDE5.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> ";