sql,SELECT c.id, c.name, COUNT(a.id) AS article_count,FROM dede_archives AS a,JOIN dede_channeltype AS c ON a.typeid = c.id,WHERE c.path LIKE CONCAT((SELECT path FROM dede_channeltype WHERE id = [当前栏目ID]), '%'),GROUP BY c.id, c.name;,
`,,请将
[当前栏目ID]`替换为实际的当前栏目ID。获取当前栏目及所有子栏目文章数量的方法
在织梦DedeCMS中,统计当前栏目及其所有子栏目的文章数量是一个常见的需求,为了实现这一功能,可以通过自定义函数来解决,这些函数需要添加到include/common.func.php
或include/extend.func.php
文件中,以下是详细的代码和调用方法:
添加自定义函数
1、函数定义
getTotalArcByTid:该函数用于返回符合记录的文章数量,如果参数$level
为真,则会查询所有子类目。
GetSonTypeID:该函数递归获取符合条件的子栏目ID,返回一个以逗号分隔的字符串。
2、具体代码
function getTotalArcByTid($tid, $level=TRUE) { global $dsql; if ($level) { $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.typeid function="getTotalArcByTid(@me)"/} 或者 [field:typeid function="getTotalArcByTid(@me)"/]
相关问答FAQs
Q1:如何在DEDECMS中统计单个栏目的文章数量?
A1:可以在模板中使用SQL标签来实现,但需要注意系统的安全设置,使用如下代码:
global $dsql;
$sql = "SELECT count(id) as dd FROM#@__archives
WHERE typeid IN ({$tid})";
$row = $dsql>GetOne($sql);
return $row['dd'];
Q2:如何在DEDECMS V5.7版本中调用子栏目列表并统计每个子栏目下的文章数量?
A2:可以在模板中使用以下标签来调用子栏目列表,并结合自定义函数统计每个子栏目的文章数量:
{dede:sonchannel} <a href='[field:typeurl/]'>[field:typename/]</a> {/dede:sonchannel} 或者 {dede:channel type='son' noself='yes'} <li><a href="[field:typelink/]">[field:typename/]</a></li> {/dede:channel}
在需要显示文章数量的地方调用自定义函数getTotalArcByTid
即可。
栏目名称 | 子栏目数量 | 当前栏目文章数量 | 所有子栏目文章数量 |
栏目一 | 3 | 20 | 100 |
子栏目一 | 0 | 10 | 10 |
子栏目二 | 0 | 5 | 5 |
子栏目三 | 0 | 5 | 5 |
栏目二 | 2 | 30 | 70 |
子栏目四 | 0 | 20 | 20 |
子栏目五 | 0 | 10 | 10 |
栏目三 | 1 | 50 | 50 |
子栏目六 | 0 | 50 | 50 |
表格展示了DEDECMS中三个栏目及其子栏目的文章数量情况。"栏目名称"表示当前栏目,"子栏目数量"表示当前栏目下的子栏目数量,"当前栏目文章数量"表示当前栏目的文章数量,"所有子栏目文章数量"表示当前栏目及其所有子栏目的文章总数。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1209079.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复