在织梦DedeCMS中,调用当前栏目下的文章数可以通过以下几种方法实现,这些方法包括直接使用SQL语句、自定义函数以及利用模板标签等。
方法一:使用SQL语句统计
通过在模板中使用SQL语句,可以快速获取当前栏目及其所有子栏目的文章总数,具体操作如下:
1、打开include/common.func.php文件:在该文件的最后添加如下代码:
“`php
function GetTotalArc( $tid ){
global $dsql;
$sql = GetSonIds( $tid );
$row = $dsql >GetOne("Select count (id) as dd From#@__archives
where typeid in($sql )");
return $row [ ‘dd’ ];
}
“`
2、在模板中调用:使用以下代码即可显示当前栏目及其所有子栏目的文章总数:
“`html
{dede:type}[field:ID function="GetTotalArc(@me)"/]{/dede:type}
“`
方法二:使用自定义函数
通过自定义函数,可以在模板中灵活调用当前栏目下的文章数,具体步骤如下:
1、打开include/common.func.php或include/extend.func.php文件:在该文件的最后添加如下代码:
“`php
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();
$typeid = ”;
while($row=$dsql>GetObject()){
$typeid .= "{$row>id},";
$typeid .= GetSonTypeID($row>id);
}
return trim($typeid,’,’);
}
“`
2、在模板中调用:使用以下代码即可显示当前栏目及其所有子栏目的文章总数:
“`html
{dede:field.typeid function="getTotalArcByTid(@me)"/}
“`
方法三:使用runphp参数
通过织梦自带的runphp参数,也可以实现文章总数的统计,具体步骤如下:
1、在模板中直接调用:在需要显示统计数量的地方加入如下代码:
“`html
{dede:field.typeid runphp=’yes’}
global $dsql;
$row = $dsql>GetOne("select count(*) as dd from dede_archives where typeid = @me");
@me = $row[‘dd’];
{/dede:field.typeid}
“`
FAQs
Q1: 如何在主页模板上显示每个栏目的文章总数?
A1: 在主页模板上,可以使用以下代码来显示每个栏目的文章总数:
共{dede:type}[field:ID function='GetTotalArc(@me)'/]篇{/dede:type}
或者:
[field:typename/](该类拥有{dede:type}[field:ID function="GetTotalArc(@me)"/]个文档){/dede:type}
Q2: 如何在列表页模板中显示当前栏目的文章总数?
A2: 在列表页模板中,可以使用以下代码来显示当前栏目的文章总数:
{dede:field.typeid function="getTotalArcByTid(@me)"/}
或者:
{dede:field.typeid runphp='yes'} global $dsql; $row = $dsql>GetOne("select count(*) as dd from dede_archives where typeid = @me"); @me = $row['dd']; {/dede:field.typeid}
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1110236.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复