云主机测评网云主机测评网云主机测评网

云主机测评网
www.yunzhuji.net

如何在DedeCMS中查询并显示当前栏目的文章数量?

在dedecms中,可以使用标签{dede:field name=’total’}来获取当前栏目下的文章数。

在织梦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}

打赏
版权声明:主机测评不销售、不代购、不提供任何支持,仅分享信息/测评(有时效性),自行辨别,请遵纪守法文明上网。
文章名称:《如何在DedeCMS中查询并显示当前栏目的文章数量?》
文章链接:https://www.yunzhuji.net/internet/226073.html

评论

  • 验证码