找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1439|回复: 0

[分享] dedecms怎么调用当前栏目下的文章数

[复制链接]
发表于 2018-7-28 19:07:12 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
今天做网站的时候要求要好多分类,每个分类下边需要有文章,可是在考虑到用户体验方面。我就想如果加上当前栏目下边的条数 会让读者一幕了然;
所以我特意查了一下资料,在这分享给大家:
第一种方法
打开include/common.func.php文件
在最后的?>之前加上

  1. //统计栏目文章数
  2. function GetTotalArc($tid){
  3.   global $dsql;
  4.   $sql = GetSonIds($tid);
  5.   $row = $dsql->GetOne("Select count(id) as dd From dede_archives where typeid in({$sql})");
  6.   return $row['dd'];
  7. }
复制代码


  然后就可以在上用
{dede:channel type='son' row='20'}
<dl><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]) </dl>
{/dede:channel} 进行调用,[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]这个就是调用的总数
第二种方法
打开include/common.func.php,在其中任一行(与?>的中间任一行)中加上如下函数。
function dynamic_num($current_id){  global $dsql;  $t_num = $dsql->GetOne("select count(*) as num from `dede_archives` where typeid='$current_id'");  if(is_array($t_num)){    return "本栏目共有".$t_num[num]."篇文章";  }else{    return "本栏目共有0篇文章" ;  }  }  ?>  
在列表页是这样调用的:
{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}
如果要统计本栏目及与子栏目的总数,则可以用下面的函数:
//统计包括子栏目的文章数  function GetArtTotal($id){   
//1.统计当前栏目文章数      $dsql = new DedeSql(false);      $row = $dsql->GetOne("select count(id) as ArtSum from dede_archives where typeid=$id; ");         
//2.统计子栏目文章数    $dsql = new DedeSql(false);     $rowSun = $dsql->GetOne("Select count(t.ID) as dd  from dede_archives t left join dede_arctype u1 on u1.id=t.typeid where (u1.reID=$id)");      
//3. 1+2得出总文章数    return $row['ArtSum']+$rowSun['dd'];  } 调用方法:
{dede:field.typeid function="GetArtTotal(@me)"/}
以上发放些许一样,我还没来得及试呢!先放了这供大家参考一下 本站来源:

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-1 16:20 , Processed in 0.044717 second(s), 7 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表