2016 - 2024

感恩一路有你

dedecms织梦调用当前栏目文章数方法

浏览量:4760 时间:2024-07-22 16:33:33 作者:采采

在做模板开发时,为了显示每个栏目的文章数量,我们可以通过以下方法来实现。这个方法适用于dedecms版本5.6及以上(包括5.6、5.7和5.7sp1),其他版本未经测试。

修改文件

首先,我们需要修改dedecms的文件。打开该文件,在最后加上以下代码:

```php

//统计栏目文章数

function GetTotalArc($tid){

global $dsql;

$sql GetSonIds($tid);

$row $dsql->GetOne("Select count(id) as dd From zmb_archives where typeid in({$sql})");

return $row['dd'];

}

//统计当前栏目文章数

function dynamic_num($current_id){

global $dsql;

//读取当前栏目的子ID

$sql "SELECT id FROM zmb_arctype WHERE id'{$current_id}' || topid'{$current_id}'";

$dsql->SetQuery($sql);

$dsql->Execute();

while($row $dsql->GetArray()){

$arr[] $row[id];

}

foreach($arr as $key>$value){

$type . $value . ',';

}

$ty "".$type."0";

$t_num $dsql->GetOne("select count(*) as num from zmb_archives where typeid in($ty)");

if(is_array($t_num)){

return " ".$t_num[num]." ";

}else{

return "0";

}

}

```

在模板中调用

接下来,在模板中,我们可以使用以下代码来调用栏目的文章数:

```php

该类拥有{dede:type}[field:id function"dynamic_num(@me)" /]{/dede:type}个文档

[field:id runphp'yes']@me GetTotalArc(@me)[/field:id]

```

例如,我们可以在模板中使用如下代码来显示栏目名称以及该栏目下的文章数量:

```html

{dede:field name'typename' /}lt;bgt;(该类拥有{dede:type}[field:id function"dynamic_num(@me)" /]{/dede:type}个文档)lt;/bgt;

{dede:channel type'son' }

lt;ligt;lt;a href"[field:typelink/]"gt;[field:typename/]lt;/agt;lt;bgt;(lt;spangt;[field:ID runphp'yes'] @me GetTotalArc(@me);[/field:ID]lt;/spangt;)lt;/bgt;lt;/ligt;

{/dede:channel}

```

通过以上方法,我们可以轻松地在dedecms模板中调用当前栏目的文章数量,并且实现灵活的显示效果。希望对你有所帮助!

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。