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

如何在DedeCMS中利用getall方法获取当前页面的Tag标签(超链接)?

在Dedecms中,使用 getall函数获取当前页面的tag标签(超链接)的方法如下:,,“ php,$tags = getall("SELECT * FROM dede_tag WHERE aid={$aid}");,foreach ($tags as $tag) {, echo '' . $tag['tag'] . '';,},` ,,$aid 是当前文章的ID。这段代码会查询数据库中的dede_tag`表,获取与当前文章相关的所有标签,并输出为超链接的形式。

在DedeCMS(织梦内容管理系统)中,使用getall获取当前页面的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标记。

示例代码

1. 首页、列表页和文章页调用带超链接的TAG标签

{dede:tag row='30' sort='new' getall='0'}
    <a href='[field:link/]'>[field:tag /]</a>
{/dede: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  href='[field:link/]'>[field:tagname/] </a>
{/dede:tag}
<script language="javascript">
<!
var tag_a=document.getElementsByTagName("a");
for( i in tag_a){
    var offset=6;
    var num=4;
    if(tag_a[i].className=="tag"){
        var rnd=Math.ceil((num+offset)*Math.random());
        if(rnd>offset){
            tag_a[i].className="tag"+(rndoffset);
        }
    }
}
//>
</script>
CSS代码:
.tag1 { color:#339900;fontweight:bold;}
.tag2 { color:#e65730;}
.tag3 { color:#00b9da;}
.tag4 { color:#FE3981;fontweight:bold;fontsize:14px;}

FAQs

问题1:如何在文章页调用TAG标签?

:在文章页调用TAG标签可以使用以下代码:

{dede:tag table='dede_search_keywords' sort='keyword' row='2' if=''}
    <a  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}

问题2:如何在列表页调用TAG标签?

:在列表页调用TAG标签可以通过以下两种方法实现:

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)/]

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]
<?php
// 步骤2: 引入DedeCMS的核心文件
require_once dirname(__FILE__).'/include/common.inc.php';
// 步骤3: 获取当前页面的内容模型ID
$channelid = $dsql>GetOne("SELECT channelid FROM#@__archives WHERE aid={$_GET['aid']}");
// 步骤4: 根据内容模型ID获取当前页面的tag标签
$tags = $dsql>GetOne("SELECT tag FROM#@__channeltype WHERE id=$channelid");
// 步骤5: 将获取到的tag标签输出
if ($tags) {
    echo "当前页面的标签为:$tags";
} else {
    echo "当前页面没有标签信息。";
}
?>
步骤 代码/描述
1 确保你的DedeCMS网站已正确安装并配置。
2 在页面的PHP文件中,引入DedeCMS的核心文件。
3 获取当前页面的内容模型ID。
4 根据内容模型ID获取当前页面的tag标签。
5 将获取到的tag标签输出或处理。

上述代码中使用了$_GET['aid']来获取当前页面的文章ID,你需要根据实际情况调整这部分代码,确保你的数据库表名与代码中的表名一致,或者根据实际情况修改表名。

0

随机文章