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

如何在织梦dedecms中调用评论条数?

织梦dedecms中调用评论条数的方法是使用 dede_archives表的 Counter字段。

织梦CMS(DedeCMS)是一款广泛使用的开源内容管理系统,适用于构建各种类型的网站,包括博客、企业网站等,在织梦CMS中调用评论条数是一个常见的需求,尤其是在博客和论坛类网站上,本文将详细讲解如何在织梦CMS中调用评论条数的方法,并介绍相关的注意事项和常见问题解答。

方法一:修改文件plusfeedback_ajax

1、定位文件:首先需要找到织梦CMS系统中的plusfeedback_ajax.php文件,这个文件通常位于织梦CMS的plus目录下。

2、修改代码:打开plusfeedback_ajax.php文件,找到以下代码行:

“`php

$pagesize = 10;

“`

3、调整数值:将$pagesize = 10;中的10改为你想要的评论条数,如果你希望每页显示20条评论,可以将其改为:

“`php

$pagesize = 20;

“`

4、保存文件:保存修改后的文件,并重新刷新页面以查看效果。

这种方法适用于需要固定每页显示特定数量评论的场景,比如列表页或首页。

方法二:使用JS方式调用评论总数

1、建立feedcount.php文件:在织梦CMS的plus目录下,建立一个名为feedcount.php的文件,并添加以下代码:

“`php

document.write("共有<?php

require_once(dirname(__FILE__)."/../include/common.inc.php");

$row = $db>GetOne("select count(*) as fc from dede_feedback ");

if(!is_array($row)){

echo "0";

}else {

echo $row[‘fc’];

}

?>条评论内容!");

“`

2、插入JS代码:在需要显示评论总数的页面中,加入以下JS代码:

“`html

<script type="text/javascript" src="{dede:field name=’phpurl’}/feedcount.php?aid={dede:field.id}"></script>

“`

这种方法适用于需要动态显示全站评论总数或单篇文章评论数的场景,可以在网站的任何位置调用。

方法三:调用单篇文章评论数

1、修改extend.func.php文件:在include目录下找到extend.func.php文件,并在最后面添加以下函数:

“`php

//调用单篇文章评论数

function cnum($id) {

global $dsql;

$row = $dsql>GetOne("Select count(id) as c from dede_feedback where aid=’$id’");

$num=$row[‘c’];

if($num==0)$num=’ 0′;

return $num;

}

“`

2、在模板中使用函数:在底层模板中使用以下标签调用该函数:

“`html

[field:id function=’cnum(@me)’]

“`

这种方法适用于需要在文章详情页显示该文章的评论数。

方法四:调用文章页和列表页的评论数

1、文章页显示评论数:在文章模板中添加以下代码:

“`html

{dede:field.id runphp=’yes’}

global $dsql;

$dsql>SetQuery("Select count(id) as c from dede_feedback where aid=".@me);

$row = $ddb>getone();

@me=$row[‘c’];

{/dede:field.id}次

“`

2、列表页显示评论数:在列表模板中添加以下代码:

“`html

[field:ID runphp=’yes’]

global $dsql;

$dsql>SetQuery("Select count(id) as c from dede_feedback where aid=".@me);

$row = $dsql>getone();

@me=$row[‘c’];

[/field:ID]次

“`

这种方法适用于需要在文章页和列表页分别显示评论数的场景。

归纳归纳

方法 适用场景 步骤 优点 缺点
修改文件plusfeedback_ajax 固定每页显示特定数量评论 修改plusfeedback_ajax.php文件中的$pagesize变量 简单直接 灵活性不足
使用JS方式调用评论总数 动态显示全站评论总数或单篇文章评论数 建立feedcount.php文件并插入JS代码 灵活可变 需要编写PHP和JS代码
调用单篇文章评论数 文章详情页显示评论数 修改extend.func.php文件并在模板中使用函数 针对性强 需要修改核心文件
调用文章页和列表页的评论数 文章页和列表页显示评论数 在模板中添加相应代码 灵活性高 需要编写SQL查询

相关FAQs

1、Q1: 如何确保修改后的代码生效?

A1: 确保修改后的代码文件已经正确保存,并且服务器缓存已清除,可以通过刷新页面或重启服务器来查看效果。

2、Q2: 如果调用评论数不准确怎么办?

A2: 检查SQL查询语句是否正确,以及是否与数据库中的表结构和字段名一致,如果问题依旧存在,可以尝试调试代码或查看系统日志。

3、Q3: 如何在首页显示全站评论总数?

A3: 使用JS方式调用评论总数,在首页插入相应的JS代码即可实现,具体步骤如上文所述。

通过以上几种方法,可以在织梦CMS中灵活地调用评论条数,满足不同场景的需求,无论是固定每页显示特定数量的评论,还是动态显示全站或单篇文章的评论总数,都可以通过简单的代码实现,希望本文能对大家在实际项目中的操作有所帮助。

序号 方法名称 参数说明 返回值说明
1 DedeCMS数据库查询评论数 表名(通常是dede评论ecs评论等),字段名(通常是id),评论类型(如article表示文章评论) 返回该类型评论的总条数
2 DedeCMS模型调用方法 $typeid(文章类型ID),$id(文章ID) 通过调用DedeCMS的模型方法,获取到指定文章下的评论总数
3 DedeCMS标签调用方法 {dede:arccomment id='文章ID' num='10'} 使用标签输出指定文章下的前10条评论的ID和内容,可以通过循环遍历获取总条数
4 PHP函数mysqli_query $link(数据库连接),$sql(SQL查询语句) 执行SQL查询后,通过mysqli_num_rows()获取查询结果的总条数
5 PHP函数PDOStatement::rowCount $stmt(PDOStatement对象) 执行SQL查询后,通过rowCount()获取查询结果的总条数

以下是一些示例代码:

1、DedeCMS数据库查询评论数:

$remarks_count = $dsql>Count("SELECT COUNT(*) FROM dede_comment WHERE aid = $aid");

2、DedeCMS模型调用方法:

$article = $dsql>GetOne("SELECT id FROM dede_arctype WHERE id = $typeid");
$remarks_count = $dsql>GetOne("SELECT COUNT(*) FROM dede_comment WHERE aid = $article[id]");

3、DedeCMS标签调用方法:

// 循环输出前10条评论的ID和内容
while ($row = $dsql>GetArray("{dede:arccomment id='文章ID' num='10'}")) {
    // ...处理评论内容
}
// 获取总条数
$remarks_count = $dsql>GetOne("SELECT COUNT(*) FROM dede_comment WHERE aid = '文章ID'");

4、PHP函数mysqli_query

$link = mysqli_connect("localhost", "username", "password", "database");
$sql = "SELECT COUNT(*) FROM dede_comment WHERE aid = $aid";
$result = mysqli_query($link, $sql);
$remarks_count = mysqli_num_rows($result);

5、PHP函数PDOStatement::rowCount

$db = new PDO("mysql:host=localhost;dbname=database", "username", "password");
$stmt = $db>prepare("SELECT COUNT(*) FROM dede_comment WHERE aid = :aid");
$stmt>bindParam(':aid', $aid);
$stmt>execute();
$remarks_count = $stmt>rowCount();
0