在网站建设中,统计栏目文章数是一项常见的需求。通过简单的代码修改和调用方法,可以轻松实现这一功能,从而提升网站的用户体验和SEO效果。以下是详细的实现步骤和调用方法。

首先,需要对DedeCMS的核心文件进行修改。打开include/common.func.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'];
}
// 统计栏目文章数结束

完成上述代码添加后,可以通过以下两种方式进行调用:

第一种方法:

使用[field:ID function='GetTotalArc(@me)'/]进行调用。当栏目下无文章时,显示“空”。

第二种方法:

使用[field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]进行调用。当栏目下无文章时,显示“0”。

以下是具体的调用示例:

1. 调用指定栏目ID的栏目文章数:


{dede:type typeid='1'}[field:typename/]([field:ID function='GetTotalArc(@me)'/]){/dede:type}

{dede:type typeid='1'}[field:typename/]([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]){/dede:type}

2. 调用顶级栏目的栏目文章数:


{dede:channel type='top' row='10' currentstyle="
  • ~typename~
  • "}
  • [field:typename/]([field:ID function='GetTotalArc(@me)'/])
  • {/dede:channel} {dede:channel type='top' row='10' currentstyle="
  • ~typename~
  • "}
  • [field:typename/]([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID])
  • {/dede:channel}

    3. 调用某一栏目下子栏目的文章数:

    
    {dede:channel type='son' typeid='1' row='10' currentstyle="
  • ~typename~
  • "}
  • [field:typename/]([field:ID function='GetTotalArc(@me)'/])
  • {/dede:channel} {dede:channel type='son' typeid='1' row='10' currentstyle="
  • ~typename~
  • "}
  • [field:typename/]([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID])
  • {/dede:channel}

    4. 文章页/栏目页调用当前栏目的文章数:

    
    {dede:type}[field:typename/]([field:ID function='GetTotalArc(@me)'/]){/dede:type}
    
    {dede:type}[field:typename/]([field:ID runphp='yes'] @me = GetTotalArc(@me);[/field:ID]){/dede:type}
    

    通过以上方法,可以灵活地在不同页面中展示栏目文章数量。这不仅有助于用户快速了解栏目内容的丰富程度,还能提高搜索引擎对网站结构的理解,从而提升SEO效果。

    注意:在实际操作中,请确保备份相关文件,以防止意外修改导致系统异常。


    空格 示例: 这 是 一个 空格 测试