当前位置:首页 > 技术教程 > dede技术教程 > 正文内容

dedecms系统TAG标签只调用当前栏目下TAG标签

访客4年前 (2020-11-16)dede技术教程9107

织梦tag标签默认是全站调用的,不能按栏目调用当前栏目的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(!empty($typeid))       {           $addsql = " WHERE typeid='$typeid' ";       }

改为如下代码:

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']}' ";}else{        if(!empty($typeid))        {                $addsql = " where typeid='$typeid' ";        }

红色部分就是要添加的代码。

以下部分代码是调用当前栏目TAG标签的方法。

TAG标签使用方法:

{dede:tag sort='hot' getall='2'}<a href='[field:link/]'>[field:tag /]</a>{/dede:tag}

声明:
本站大部分资源收集于网络,只做学习和交流使用,版权归原作者所有。
若您需要使用非免费的软件或服务,请购买正版授权并合法使用!
本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。