POST TIME:2020-03-31 15:20
標簽名稱:tag
功能說明:TAG調用標簽
適用范圍:全局使用
DEDECMS的tags調用的基本語法是:
{dede:tag sort='new' getall='0'}
<a href='[field:link/]'>[field:tag /]</a>
{/dede:tag}
參數說明:
row='30' 調用條數,sort='new' ,排序方式 month,rand,week ,getall='0' 獲取類型 0 為當前內容頁TAG標記,1為獲取全部TAG標記,底層模板字段,link和tag。
但是我們知道dede默認在列表是無法調用tag標簽的,是用全部還是當前頁?顯然全部的話和分類信息又有些不著調,如果用當前頁的話,沒有文章id,你也調不出東西來。難道這就沒轍了嗎?
方法1:
在列表需要的位置加入下列代碼
[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]
方法2:
在inc_functions.php文件里加入
function listtag($aid){
$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='$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)"/]標記。看了一下5.7版本的DedeCMs里面關于tag的調用,雖然也有typeid的參數了,但是你打開數據庫看看就會發(fā)現,雖然dede_tagindex表里面也有了typeid的字段。但是默認值都是0.這樣代碼中的sql語句就沒有任何作用了,反而家里typeid參數取不出數據來。