当前位置:首页 > 行业动态 > 正文

如何在Dedecms中获取当前栏目的文章数量?

在DedeCMS中,要调用当前栏目下的文章数,可以使用以下代码:,,“ php,{dede:field name='total'/},

DEDECMS是一款广泛使用的开源内容管理系统,其强大的标签功能使得开发者可以灵活地调用和管理网站内容,在实际应用中,经常需要调用当前栏目下的文章数,以便于展示和统计,以下将详细介绍如何在DEDECMS中实现这一功能:

方法一:通过函数GetTotalArc获取文章数

1、涉及文件include/common.func.php

2、步骤

打开include/common.func.php文件,在文件末尾的?>前添加如下代码:

“`php

function GetTotalArc($tid){

global $dsql;

$sql = GetSonIds($tid);

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

return $row[‘dd’];

}

“`

3、调用方法

在模板中使用以下代码调用当前栏目下的文章数:

“`php

[field:ID function=’GetTotalArc(@me)’/]

[field:ID runphp=’yes’] @me = GetTotalArc(@me);[/field:ID]

“`

在主页模板中添加如下代码:

“`php

共{dede:type}[field:ID function=’GetTotalArc(@me)’/] {/dede:type}篇

或在栏目名称后面添加如下代码:

{dede:type}[field:ID function=’GetTotalArc(@me)’/] {/dede:type}

“`

方法二:通过函数getTotalArcByTid获取文章数

1、涉及文件include/common.func.phpinclude/extend.func.php

2、步骤

打开include/common.func.phpinclude/extend.func.php文件,在文件末尾的?>前添加如下代码:

“`php

function getTotalArcByTid($tid, $level=TRUE) {

global $dsql;

$level==TRUE && $tid = GetSonTypeID($tid);

$sql = "SELECT count(id) as total fromdede_archives where typeid in($tid)";

$result = $dsql>GetOne($sql);

return $result[‘total’];

}

“`

3、调用方法

在模板中使用以下代码调用当前栏目下的文章数:

“`php

{dede:field.typeid function="getTotalArcByTid(@me)"/}

[field:typeid function="getTotalArcByTid(@me)"/]

“`

在列表页模板中添加如下代码:

“`php

该栏目共有{dede:field.typeid function="getTotalArcByTid(@me)"/}篇文章

“`

相关问答FAQs

1、如何在DEDECMS中统计当前栏目及所有子栏目的文章总数?

解答:可以使用getTotalArcByTid函数来实现,首先在include/common.func.php文件中添加函数定义,然后在模板中调用该函数即可,具体代码如下:

“`php

function getTotalArcByTid($tid, $level=TRUE) {

global $dsql;

$level==TRUE && $tid = GetSonTypeID($tid);

$sql = "SELECT count(id) as total fromdede_archives where typeid in($tid)";

$result = $dsql>GetOne($sql);

return $result[‘total’];

}

“`

调用方法:{dede:field.typeid function="getTotalArcByTid(@me)"/}

2、如何在DEDECMS中获取指定栏目下的文章数量?

解答:可以使用getTypeArcLength函数来实现,首先在/include/helpers/channelunit.helper.php文件中添加函数定义,然后在模板中调用该函数即可,具体代码如下:

“`php

if ( ! function_exists(‘getTypeArcLength’)) {

function getTypeArcLength($id,$addthis=true) {

global $dsql;

if($addthis) {

$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’];

}

}

“`

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

调用方法 描述 代码示例
{dede:sql sql="SELECT COUNT(*) AS num FROM dede_arctype WHERE mid={field.mid/}"} 使用SQL查询当前栏目下的文章总数 {dede:sql sql="SELECT COUNT(*) AS num FROM dede_arctype WHERE mid={field.mid/}"}
{dede:field name='arcnum' /} 获取当前栏目下文章的总数,需要先通过SQL查询设置该字段的值 {dede:field name='arcnum' /}
{dede:field name='typeall' /} 获取当前栏目下文章的总数,typeall 包含子类别的文章总数 {dede:field name='typeall' /}
{dede:arctype id='1' /} 通过指定ID获取当前栏目下的文章总数 {dede:arctype id='1' /}

说明

1、{dede:sql} 标签用于执行SQL查询,{field.mid/} 是当前页面的字段值,mid 表示当前栏目的ID。

2、{dede:field} 标签用于获取字段的值,name 属性指定要获取的字段名称。

3、{dede:arctype} 标签用于获取指定ID的栏目信息,id 属性指定要获取的栏目ID。

根据实际需求选择合适的方法即可。

0