当前位置:首页 > 行业动态 > 正文

如何在dedecms模板中调用文章列表的tag标签?

在DedeCMS中,使用{dede:arclist}标签调用文章列表及其标签信息。具体代码示例如下:,,“

,{dede:arclist typeid='1' row='10' titlelen='40' orderby='pubdate'},,[field:title/], {dede:field name='tag'/},,{/dede:arclist},

“,,以上代码中,{dede:field name=’tag’}用于调用文章的标签信息。

在织梦CMS(DedeCMS)中,TAG标签是一种由用户自定义的关键词,用于概括文章的主要内容,通过合理使用TAG标签,可以提高文章的搜索引擎可见性,增加网站内容的收录量,以下是如何在DedeCMS模板的文章列表中调用TAG标签的几种方法:

基本语法和参数说明

1、基本语法

{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':获取类型为当前内容页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}

JavaScript代码

     var tag_a=document.getElementsByTagName("a");
     for( i in tag_a){
     var offset=6;
     var num=4;
     if(tag_a.className=="tag"){
     var rnd=Math.ceil((num+offset)*Math.random());
     if(rnd>offset){
     tag_a.className="tag"+(rndoffset);
     }
     }
     }

CSS代码

     .tag1 { color:#339900;fontweight:bold;}
     .tag2 { color:#e65730;}
     .tag3 { color:color:#00b9da;}
     .tag4 { color:#FE3981;fontweight:bold;fontsize: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}

列表页调用Tag标签的方法

dedecms默认在列表是无法调用tag标签的,经过岛主再次对织梦代码的研读及收集,现给大家再提供以下不同版本的tag标签调用方法:

1、dedecms5.7版本的调用方法

找到includehelpersarchive.helper.php文件。

在底部增加:

     function GetTags_list($aid)
     {
     global $dsql;
     $tags = '';
     $query = "SELECT tag FROMma_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 tf_taglist t left join tf_tagindex i on i.id=i.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;
     }

相关问答FAQs

1、问:如何在首页、列表页和文章页调用所有的TAG标签?

答:在首页、列表页和文章页调用所有的TAG标签可以通过以下代码实现:

   {dede:tag row='8' getall='1' sort='month'}

这段代码会显示最新的8个TAG标签,并按月份排序,如果需要更多或更少的标签数量,可以调整row参数的值。

2、问:如何使每个文章的TAG标签带上超链接?

答:要使每个文章的TAG标签带上超链接,可以在includecommon.func.php文件中修改GetTags函数,将无链接的标签改为带链接的形式,具体代码如下:

   //获得某文档的所有tag function GetTags($aid) { global $dsql; $tags = ''; $query = "Select tag Fromtf_taglist where aid='$aid' "; $dsql>Execute('tag',$query); while($row = $dsql>GetArray('tag')) { $tags .= ($tags=='' ? "<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>" : ','."<a href=/tags.php?/{$row['tag']} target=_blank>{$row['tag']}</a>"); } return $tags; }
0