云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何在DedeCMS中查询并显示当前栏目的内容数量?

DedeCMS中,要调用当前栏目下内容的数量,可以使用以下标签:,,“html,{dede:field name='total'/},“,,将上述代码插入到列表页模板的相应位置,即可显示当前栏目下内容的数量。

DedeCMS中,调用当前栏目下内容数量的方法主要有以下几种:

1、方法一

文件位置:include/common.func.php 或 include/extend.func.php。

代码添加:在文件末尾添加如下函数代码。


     function getTotalArcByTid($tid, $level=TRUE) {
         global $dsql;
         $level==TRUE && $tid = GetSonTypeID($tid);
         $sql = "SELECT count(id) as total fromdede_archives where typeid in($tid)";
         $result = $dsql>GetOne($sql);
         return $result['total'];
     }
     function GetSonTypeID($tid){
         global $dsql;
         $dsql>SetQuery("Select id Fromdede_arctype where reid in($tid) And ishidden<>1 order by sortrank");
         $dsql>Execute($tid);
         $typeid = '';
         while($row=$dsql>GetObject($tid)){
             $typeid .= "{$row>id},";
             $typeid .= GetSonTypeID($row>id);
         }
         return trim($typeid, ',');
     }

模板调用:在需要显示文章数量的模板文件中使用如下标签。

     {dede:field name='typeid' function="getTotalArcByTid(@me)"/}

2、方法二

文件位置:include/common.func.php 或 include/extend.func.php。

代码添加:在文件末尾添加如下函数代码。

     function GetTotalArc($tid){ 
         global $dsql; 
         $sql = GetSonIds($tid); 
         $row = $dsql>GetOne("Select count(id) as dd From dede_archives where typeid in({$sql})");
         return $row['dd']; 
     }

模板调用:在需要显示文章数量的模板文件中使用如下标签。

     [field:ID function='GetTotalArc(@me)'/]

3、方法三

文件位置:include/common.func.php 或 include/extend.func.php。

代码添加:在文件末尾添加如下函数代码。


     function getTotalArcByTid($tid, $level=TRUE) {
         global $dsql;
         $level==TRUE && $tid = GetSonTypeID($tid);
         $sql = "SELECT count(id) as total fromdede_archives where typeid in($tid)";
         $result = $dsql>GetOne($sql);
         return $result['total'];
     }
     function GetSonTypeID($tid){
         global $dsql;
         $dsql>SetQuery("Select id Fromdede_arctype where reid in($tid) And ishidden<>1 order by sortrank");
         $dsql>Execute($tid);
         $typeid = '';
         while($row=$dsql>GetObject($tid)) {
             $typeid .= "{$row>id},";
             $typeid .= GetSonTypeID($row>id);
         }
         return trim($typeid, ',');
     }

模板调用:在需要显示文章数量的模板文件中使用如下标签。

     {dede:field name='typeid' function="getTotalArcByTid(@me)"/}

表格对比

方法 文件位置 函数名称 函数代码 模板调用
方法一 include/common.func.php 或 include/extend.func.php getTotalArcByTid、GetSonTypeID [见上文] {dede:field name=’typeid’ function=”getTotalArcByTid(@me)”/}
方法二 include/common.func.php 或 include/extend.func.php GetTotalArc [见上文] [field:ID function=’GetTotalArc(@me)’/]
方法三 include/common.func.php 或 include/extend.func.php getTotalArcByTid、GetSonTypeID [见上文] {dede:field name=’typeid’ function=”getTotalArcByTid(@me)”/}

相关问答FAQs

1、如何在主页模板中显示每个栏目的文章总数?:在主页模板中,可以使用如下标签来显示每个栏目的文章总数:{dede:channel type=’top’ row=’8′ currentstyle="<li class=’thisclass’><a href=’~typelink~’>~typename~ ({dede:field name=’typeid’ function="getTotalArcByTid(@me)"/})</a></li>"}/dede:channel}。

2、如何获取指定栏目及其所有子栏目的文章总数?:要获取指定栏目及其所有子栏目的文章总数,可以在模板中调用自定义函数getTotalArcByTid,具体代码为:{dede:field name=’typeid’ function="getTotalArcByTid(@me)"/}。

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何在DedeCMS中查询并显示当前栏目的内容数量?》
文章链接:https://www.yunzhuji.net/yunfuwuqi/254373.html

评论

  • 验证码