• DEDECMS怎么获取当前栏目及所有子栏目的文章数量


    DEDECMS怎么获取当前栏目及所有子栏目的文章数量?

    以下代码用来解决查询当前栏目及当前栏目下所有子栏目的文章总数,添加到/include/common.func.php

    或者 /include/extend.func.php中,然后在模板中调用getTotalArcByTid(1)。

    代码如下:

    /*
    * 返回符合记录的文章数量
    * @description DEDE不允许执行子查询,解决栏目下文章统计的问题
    * @param $level 为真时查询所有子类目
    * */
    
    function getTotalArcByTid($tid, $level=TRUE) {
      global $dsql;
      $level==TRUE && $tid = GetSonTypeID($tid);
      $sql = "SELECT count(id) as total from `dede_archives` where typeid in($tid)";
      $result = $dsql->GetOne($sql);
      return $result['total'];
    }
    
    /*
    * 递归获取符合条件的子栏目
    * @param $tid 栏目ID
    * @return string
    * */
    function GetSonTypeID($tid){
      global $dsql;
      $dsql->SetQuery("Select id From `dede_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.typeid function="getTotalArcByTid(@me)"/}

    或者

    [field:typeid function="getTotalArcByTid(@me)"/]

    以上就是DEDECMS怎么获取当前栏目及所有子栏目的文章数量的详细内容。

  • 相关阅读:
    洛谷-P1591 阶乘数码
    洛谷-P1328 生活大爆炸版石头剪刀布
    git的使用
    docker下载命令
    springboot学习笔记
    内部类被实例化才会被加载进内存测试
    springboot环境搭建遇到的问题
    Java多线程的锁机制
    spring JdbcTemplate学习
    多线程循环注意
  • 原文地址:https://www.cnblogs.com/panziwen/p/14933543.html
Copyright © 2020-2023  润新知