织梦dedecmsTAG标签调⽤汇总(史上最全)
前⾔
TAG标签是⼀种由您⾃⼰定义的,⽐分类更准确、更具体,可以概括⽂章主要内容的关键词,合理的运⽤TAG标签,可以使你发表的⽂章更容易被搜索到。
很多⽹站的⾸页、列表页和⽂章页调⽤的TAG关键词是带超链接,这样利于蜘蛛搜索抓取,⼜有利于⽤户点击,那在织梦dedecms系统的⽹站上该如何实现这⼀功能呢?对此,岛主整理了以下⼏种⽅法供⼤家使⽤:
TAG标签调⽤汇总
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_ElementsByTagName("a");
for( i in tag_a){
var offset=6;
var num=4;
if(tag_a.className=="tag"){
var il((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> ";
再再下⾯空⽩处加⼊以下代码:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论