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

如何在Dedecms中实现内容页Tags标签的调用并附上链接地址?

在Dedecms中,内容页的Tags标签调用并带链接地址可以通过以下代码实现:,,“

php,{dede:field name='tags'/},

管理系统(DedeCMS)中,调用文章的Tags标签并添加链接地址可以通过修改模板文件和函数代码实现,以下是详细的步骤和示例代码:

获取当前文章的Tag标签并添加链接

1、打开include/common.func.php文件:找到大约755行的位置,修改GetTags函数。

2、修改GetTags函数

function GetTags($aid) {
    global $dsql;
    $tags = '';
    $query = "Select tag Fromdede_taglist

where aid='$aid'"; $dsql>Execute('tag',$query); while($row = $dsql>GetArray('tag')) { $tags .= ($tags=='' ? "<a href=/tags.php?/{$row['tag']}>{$row['tag']}</a>" : ','."<a href=/tags.php?/{$row['tag']}>{$row['tag']}</a>"); } return $tags; }

where aid='$aid'";
    $dsql>Execute('tag',$query);
    while($row = $dsql>GetArray('tag')) {
        $tags .= ($tags=='' ? "<a href=/tags.php?/{$row['tag']}>{$row['tag']}</a>" : ','."<a href=/tags.php?/{$row['tag']}>{$row['tag']}</a>");
    }
    return $tags;
}

3、保存并关闭include/common.func.php文件

在模板文件中调用带链接的Tag标签

1、打开文章页模板文件:通常位于/templets/default/article_article.htm。

2、在需要显示Tag标签的位置插入以下代码

[field:id runphp='yes']
    global $cfg_cmspath;
    $tags = GetTags(@me);
    $revalue = '';
    $tags = explode(',', $tags);
    foreach($tags as $key => $value){
        if($value){
            $revalue .= '<a href="'.$cfg_cmspath.'/tags.php?/'.urlencode($value).'/">'.$value.'</a> ';
        }
    }
    @me = $revalue;
[/field:id]

效果展示

通过上述步骤,可以在文章内容页成功调用当前文章的Tag标签,并为其添加链接,如果文章有三个Tag标签:“技术”、“编程”、“Python”,则在页面上会显示为:

<a href="/tags.php?/技术/">技术</a> <a href="/tags.php?/编程/">编程</a> <a href="/tags.php?/Python/">Python</a>

相关问答FAQs

1、如何在列表页调用带链接的Tag标签?

答:在列表页模板文件(如/templets/default/list_article.htm)中,使用以下代码调用带链接的Tag标签:

[field:id runphp='yes']
    global $cfg_cmspath;
    $tags = GetTags(@me);
    $revalue = '';
    $tags = explode(',', $tags);
    foreach($tags as $key => $value){
        if($value){
            $revalue .= '<a href="'.$cfg_cmspath.'/tags.php?/'.urlencode($value).'/">'.$value.'</a> ';
        }
    }
    @me = $revalue;
[/field:id]

2、如何自定义Tag标签的链接格式?

答:可以在GetTags函数中自定义链接格式,将链接格式改为

/tags/tagname.html

,只需将

<a href="'.$cfg_cmspath.'/tags.php?/'.urlencode($value).'/">'.$value.'</a>

替换为

<a href="/tags/'.urlencode($value).'.html">'.$value.'</a>

即可。

即可。

<?php
/**
 * DedeCMS内容页Tags标签调用并带链接地址
 * 
 * 该代码片段可以在DedeCMS的内容页模板中调用,用于显示文章的Tags标签,并为每个标签生成链接地址。
 */
// 获取当前文章的Tags标签
$tags = $dsql>GetOne("SELECT tagstext FROM#@__archives

WHERE aid=$aid"); // 检查是否有Tags标签 if ($tags) { // 分割Tags标签为数组 $tags_array = explode(',', $tags); // 遍历标签数组 echo '<div>'; foreach ($tags_array as $tag) { // 删除标签两端的空格 $tag = trim($tag); // 为标签生成链接地址 $tag_link = $tag ? "?tags=" . urlencode($tag) : ''; // 输出标签及链接 echo '<a href="' . $tag_link . '" class="taglink">' . $tag . '</a>'; } echo '</div>'; } else { // 如果没有Tags标签,则不显示任何内容 echo '<div class="tagscontainer">暂无标签</div>'; } ?>

WHERE aid=$aid");
// 检查是否有Tags标签
if ($tags) {
    // 分割Tags标签为数组
    $tags_array = explode(',', $tags);
    
    // 遍历标签数组
    echo '<div>';
    foreach ($tags_array as $tag) {
        // 删除标签两端的空格
        $tag = trim($tag);
        // 为标签生成链接地址
        $tag_link = $tag ? "?tags=" . urlencode($tag) : '';
        // 输出标签及链接
        echo '<a href="' . $tag_link . '" class="taglink">' . $tag . '</a>';
    }
    echo '</div>';
} else {
    // 如果没有Tags标签,则不显示任何内容
    echo '<div class="tagscontainer">暂无标签</div>';
}
?>

代码片段是DedeCMS内容页模板中用于调用并显示文章Tags标签的示例,代码执行以下步骤:

1、从数据库中获取当前文章的Tags标签。

2、检查是否有Tags标签。

3、如果有标签,则将标签文本分割成一个数组。

4、遍历标签数组,为每个标签生成一个带有链接地址的HTML元素。

5、输出标签及其链接。

6、如果没有Tags标签,则显示“暂无标签”。

这段代码假设您已经在DedeCMS中设置了相应的数据库连接和变量(如

$dsql

$aid

),在实际使用中,您可能需要根据您的具体环境和配置进行适当的调整。

),在实际使用中,您可能需要根据您的具体环境和配置进行适当的调整。

0