我们在使用织梦dedecms建站中,很多的时候可能需要用到在网站首页根据要求调用某个栏目下的Tag,就是按栏目调出Tag,这个时候我们就需要用到DEDE的SQL运行功能。关于织梦dedecms的SQL语句361源码前面做个比较详细的介绍,如《DedeCMS织梦sql模板标签调用代码大全》、《15条织梦DedeCMS最常用的SQL语句》等,需要了解的朋友可以移步参看。
{dede:sql sql="select * from dede_archives a left join dede_taglist t on a.id=t.aid where a.typeid='10' limit 4"} <a href='/tags.php?[field:tag/]' target="_blank" title="[field:tag /]">[field:tag /]</a>{/dede:sql}
这里typeid=‘10’可以改成你实际要调用的栏目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> ";
这样就可以实现直接调用而且带有链接了。
新闻热点
疑难解答