在使用DEDECMS时,获取指定栏目下的文章数量是一项常见需求。为了实现这一功能,我们可以编写一个自定义的小助手,并通过function进行调用。以下是具体的操作步骤和代码示例。 第一步:打开/include/helpers/channelunit.helper.php 文件,在其中添加一个新的方法 getTypeArcLength($id,$addson=true)。以下是该方法的代码:

/**  
 * 获取指定栏目下面的文章数量  
 *  
 * @param   string  $id     栏目id  
 * @param   string  $addthis 是否包含子栏目  
 * @return  string  
 */  
if ( ! function_exists('getTypeArcLength')) {  
    function getTypeArcLength($id,$addson=true) {  
        global $dsql;  
        if($addson) {  
            $types = GetSonIds($id);  
            $sql = "SELECT count(id) as len FROM idea_arctiny where typeid IN ($types)";  
        } else {  
            $sql = "SELECT count(id) as len FROM idea_arctiny where typeid = $id";  
        }  
        $arclen = $dsql->GetOne($sql);  
        return $arclen['len'];  
    }  
}  
此函数的作用是根据给定的栏目ID,查询该栏目下的文章数量。如果设置参数$addson为true,则还会统计子栏目中的文章数量。 第二步:在模板中调用这个新创建的函数。可以在任何可以显示栏目的地方调用,例如type标签等。下面是具体的调用方式:

调用当前栏目的文章数量:


{dede:field.id function="getTypeArcLength(@me,false)"/}

如果你需要针对特定类型的栏目(如ID为24的栏目)来获取其文章数量,可以这样写:


{dede:type typeid='24'}  
[field:id function="getTypeArcLength(@me,false)"/]  
{/dede:type}
通过以上步骤,你就可以在DEDECMS网站上轻松获取指定栏目下的文章数量了。这种方法不仅灵活,而且易于维护,非常适合对栏目内容数量有展示需求的网站。