在网站建设中,统计栏目文章数是一项常见的需求。通过简单的代码修改和调用方法,可以轻松实现这一功能,从而提升网站的用户体验和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效果。
注意:在实际操作中,请确保备份相关文件,以防止意外修改导致系统异常。
空格 示例: 这 是 一个 空格 测试