【收藏整理】WordPress Ajax 评论提交

首先说下使用ajax提交评论的好处,提升交互体验就不谈了,最重要的是可以防止垃圾评论,所以我们建议所有Wordpress用户来使用这个方法提交评论。

要知道一般垃圾评论都是通过表单机器人提交的,如果使用了ajax评论提交我们就可以禁用wordpress的表单提交,也就是删除或者清空wp根目录下的wp-comment-post.php这个文件。

当然你可能会说我可以使用akismet插件啊,是的,你完全可以,但是这个插件一来会拖慢评论提交的速度,二来会在数据库中的commentmeta中插入大量的无用数据,所以强烈建议使用ajax评论提交。

还有一点非常关键,普通的POST会刷新页面,造成网站统计不准确。


如果细心点的话发现很多人还在使用willin kan那个版本,不得不说那个很经典,但是有点太老了,尤其是新评论的添加位置,其实不是很科学,如果评论不止一页你会发现新评论的位置在翻页按钮下面。我在willin 的基础上改进了一下,主要是采用了admin-ajax.php进行提交,DOM操作改进,还有提示文字的重做,因为可能涉及到一些文件修改,所以建议有一定基础的人使用。

默认代码兼容wordpress 默认主题twentyfifth。

实现方法

下载压缩包,解压后把文件夹放到自己的主题目录中,在functions.php中加入如下代码即可。

require get_template_directory() . '/ajax-comment/do.php';

兼容处理

由于主题结构的不同,可能出现的结果是虽然你成功提交了评论,但是刷新之前显示不正常,那么我们需要对相关函数进行处理

1.评论样式不一致

需要修改文件夹中的do.php,修改其中的评论结构使之和你的一致即可

2.不显示新评论

这是因为包裹评论的容器和JS中的不一致,打开comments.php,看看你的容器名,然后修改ajax-comment.js中标注的位置即可

文件下载

本文转自:http://fatesinger.com/59

本文共 13 个回复

  1. JV says:
    已经加上了?! :idea:
        1. 小二苘 PO主 says:
          @JV 空间有点毛病,每天发两个评论通知,就没反映了
  2. 大肥羊 says:
    这方法那个状态提示不怎么友好,特别是提交评论不快的主机。
  3. Pingback: 【收藏整理】Ajax提交评论后可以修改 - 网站相关 - 萌月

  4. Beautymind says:
    这个Ajax评论 你的怎么设置的 我的怎么不行呢?也是按着提示来的 :???:

发表留言,喵!