/templets/default/list_article_{channelid}.htm
。,,2. 在该模板文件中,找到需要显示文章数目的位置,插入以下代码:,,“php,{dede:field name='total'/},
“,,3. 保存模板文件并更新缓存。,,这样,当前栏目的文章数目就会显示在指定位置。织梦DedeCMS栏目列表页统计并调用当前栏目文章数目的方法
方法一:使用自定义函数
在织梦DedeCMS中,我们可以通过编写自定义函数来实现统计和调用当前栏目及其所有子栏目的文章数量,需要修改include/common.func.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']; } function dynamic_num($current_id){ global $dsql; //读取当前栏目的子ID $sql = "SELECT id FROM#@__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#@__archives
where typeid in($ty)"); if (is_array($t_num)){ return " " . $t_num[num]. " "; } else { return "0" ; } }
在模板需求统计栏目文档的地方加入以下代码:
{dede:field name='typename'/}(该类拥有{dede:type}[field:id function="dynamic_num(@me)" /]{/dede:type}个文档) {dede:channel type='son' } <li><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]</span>)</li> {/dede:channel}
方法二:利用runphp参数
织梦DedeCMS提供了runphp参数,可以直接在模板中运行PHP代码,这种方法适用于需要在列表页内显示该栏目共有多少篇文章的情况,具体实现步骤如下:
1、打开include/common.func.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、在模板中需要显示统计数量的地方直接加入以下代码:
{dede:field name='typename' function="GetTotalArc(@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}
这两种方法都能有效地实现在织梦DedeCMS栏目列表页中统计并调用当前栏目及其所有子栏目的文章数量,从而提升用户体验。
相关问答FAQs
Q1:如何在织梦DedeCMS中统计当前栏目及其所有子栏目的文章数量?
在织梦DedeCMS中,可以通过自定义函数或利用runphp参数来实现统计当前栏目及其所有子栏目的文章数量,自定义函数的方法是在include/common.func.php文件中添加相应的函数,然后在模板中调用这些函数,而利用runphp参数的方法则是直接在模板中运行PHP代码来获取文章数量。
Q2:如何在织梦DedeCMS模板中调用自定义函数来显示文章数量?
在织梦DedeCMS模板中,可以通过以下方式调用自定义函数来显示文章数量:
1、使用标签调用的方式:
{dede:field name='typename' function="dynamic_num(@me)"/}
或者:
{dede:channel type='son' } <li><a href='[field:typelink/]'>[field:typename/]</a>(<span>[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]</span>)</li> {/dede:channel}
2、直接在模板中运行PHP代码:
{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/1227406.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复