在使用Dedecms进行网站开发时,许多人会遇到一个问题:默认情况下,tag标签是全站调用的,并不能按照栏目来调用当前栏目的tag标签。那么如何让标签按栏目显示,只显示当前栏目的所有标签呢?本文将详细介绍实现这一功能的具体步骤。

第一步、需要找到并打开include/taglib/tag.lib.php文件。
在这个文件中,我们需要找到如下代码段:


if($getall==0 && isset($refObj->Fields['tags']) && !empty($refObj->Fields['aid']))
{
        $dsql->SetQuery("Select tid From `dede_taglist` where aid = '{$refObj->Fields['aid']}' ");
        $dsql->Execute();
        $ids = '';
        while($row = $dsql->GetArray())
  {
          $ids .= ( $ids=='' ? $row['tid'] : ','.$row['tid'] );
        }
        if($ids != '')
        {
                $addsql = " where id in($ids) ";
        }
        if($addsql=='') return '';
}
    

找到上述代码后,在其下方加入以下代码:


else if($getall==2)
{
$addsql = " where typeid='{$refObj->Fields['typeid']}' ";
}
    

第二步、完成以上修改后,接下来就是在模板中进行调用。以下是模板调用的标签代码:


{dede:tag sort='hot' getall='2'}
[field:tag /]
{/dede:tag}
    

这里的getall='2'表示获取当前栏目的tag标签,而不会获取其他栏目的标签。

通过以上两步操作,您就可以成功地让Dedecms中的tag标签按照栏目显示,从而提升网站内容的组织性和用户体验。这种方法不仅简单易行,而且能够显著提高网站的专业性与可读性。

希望这篇文章对您有所帮助!如果您还有其他问题或需要进一步的帮助,请随时联系我们。