首先,我们来看一个基本的TAG调用标签:
此代码用于首页、列表页或文章页调用标签。其中参数说明如下:
- row='30':表示调用条数。
- sort='new':表示排序方式,可选值为 month(按月)、rand(随机)、week(按周)。
- getall='0':获取类型,0 为当前内容页 TAG 标记,1 为获取全部 TAG 标记。
接下来是全局使用的语法:
{dede:tag sort='new' getall='0'}
{/dede:tag}
上述代码适用于不同页面环境下的标签调用需求。若要深入了解具体实现逻辑,可以查看文件路径:/include/taglib/tag.lib.php。
以下是几种常见场景的具体应用:
1. 首页、列表页及文章页调用 Tag
{dede:tag row='8' getall='1' sort='month'}
支持属性
row|30 行数
sort|new 排序
getall|0 调用类型
可以查看/include/taglib/tag.lib.php
{/dede:tag}
2. 列表页调用每篇文章的 Tag
[field:id runphp=yes]
$tsql = new DedeSql(false);
$tags = '';
$tsql->SetQuery("Select i.tag From taglist t left join tagindex i on i.id=t.tid where t.aid='@me'");
$tsql->Execute('t');
while($row = $tsql->GetArray('t',MYSQL_ASSOC)){
$tags .= "".$row['tag']."";
}
@me=$tags;
[/field:id]
3. 文章页调用正文的 Tag
{dede:field.tags/}
默认情况下,TAG 是无链接的。如果您希望每个 TAG 都带有链接,则需要修改文件:include/common.func.php 中约第 755 行的代码。原始代码如下:
//获得某文档的所有tag
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "Select tag From ` where aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags .= ($tags=='' ? $row['tag'] : ','.$row['tag']);
}
return $tags;
}
将其更改为以下代码后,每个 TAG 将自动附带链接:
//获得某文档的所有tag
function GetTags($aid)
{
global $dsql;
$tags = '';
$query = "Select tag From `dede_taglist` where aid='$aid' ";
$dsql->Execute('tag',$query);
while($row = $dsql->GetArray('tag'))
{
$tags.= ($tags=='' ? "{$row['tag']}" : ','."{$row['tag']}");
}
return $tags;
}