DEDE织梦DedeCMS最新版5.6以后虽然已经可以在列表页直接调用当前文档tag标签,但是,调用出来的是不带链接的纯文本,因此需要修改代码
首先先看一下函数原型:
位于/include/common.func.php文件内的以下代码:
//获得某文档的所有tag
function GetTags($aid){global $dsql;$tags = \;$query = "Select tag From `b_taglist` where aid=$aid ";$dsql->Execute( ag,$query);while($row = $dsql->GetArray( ag)){$tags .= ($tags==\ ? $row[ ag] : ,.$row[ ag]);}return $tags;}
有了上面的这个函数,要想在列表页调用tag标签,就可以参照下面这个调用代码例子:
{dede:list pagesize=’10’}
[field:pubdate function=”GetDateTimeMK(@me)”/][field:title/]
热门tags:[field:id function=GetTags(@me)/]点击:[field:click/]
[field:description/]..浏览全文
{/dede:list}
其中[field:id function=GetTags(@me)/]这段代码就是要调用tag标签的代码,将上面代码插入到你的模板文件list_article.htm里面,生成后就会看到效果。
不过对于DedeCMS来说,虽然利用[field:id function=GetTags(@me)/]是把tag标签调用出来了,但是却不带链接,只是个纯文本形式的调用,如果你想要调用带链接的tag标签,就需要按照下面步骤来修改一下:
1 | 首先请先注释掉include/helpers/archive.helper.php文件的第130行,找到 $tags .= ($tags==” ? $row[‘tag’] : ‘,’.$row[‘tag’]); 用 $tags .= ““.$row[‘tag’].” “; 语句替换,当然你也可以根据自己的需求加入自己的样式。
2 | 其次在下面空白处加入以下代码:
if ( ! function_exists(GetTagk)){ function GetTagk($aid) { global $dsql; $tagk = \; $query = "SELECT tag,aid FROM `ma_taglist` WHERE aid=$aid "; $dsql->Execute( ag,$query); while($row = $dsql->GetArray( ag)) { $tagk .= ($tagk==\ ? $row[ ag] : ,.$row[ ag]); } return $tagk; }}
3 | 再打开dede/article_edit.php,找到$tags = GetTags($aid); 在下面加上 $tagk = GetTagk($aid);
4 | 最后打开dede/templets/article_edit.htm文件,再调用tag标签那里把改成。
按照以上的步骤完成后,生成一下首页或列表页,就可以正常的调用带有链接的tag标签了,后台文章tag标签框也能正常显示了。
知识点补充扩展:
全站调用最新tag标签:
{dede:tag row=’50’ sort=’new’ getall=’1′}
[field:tag /]
{/dede:tag}
全站调用最新关键词标签:
{dede:tag table=’dede_search_keywords’ row=’3′ sort=’new’ if=”}
[field:keyword/]
{/dede:tag}