主题Flashy升级到1.2.1
January 30, 2010 1 Comment
Flashy更新到了1.2.1,到了1.2之后加上了Ajax评论的功能。可能有些人对此不感冒,但我还是比较喜欢的。
Ajax评论蓄谋已久,但由于自己水平能力的限制一直都未实现。由于多php、jQuery、Ajax开发的欠缺和对WordPress的理解不深刻,两次的提交都未成功。主要的问题就是Ajax请求的处理方式的问题。
现在用的方法是不改变评论的路径,依然是提交到wp-comments-post.php。在转向的时候做处理,在functions.php中添加如下代码:
add_filter('comment_post_redirect','commentAjaxPost',10,2)
在“commentAjaxPost”方法中对$comment进行处理。主要就是将comment.php中的<li>标签连同其内部的代码拷贝到“commentAjaxPost”方法中,并在方法末尾使用”exit;”。剩下的工作就是在js中处理响应内容了。
这种方法也比较简单,唯一不足的地方时wp-comments-post.php中的异常处理用的是wp_die(),这个方法会生成一个包含错误信息的页面。在Ajax中,我们就要从改页面的代码中找出我们所要显示给用户的错误信息。
另外在网上查到了位于wp-admin/admin-ajax.php中的wp_ajax_{$_GET[action]}和wp_ajax_{$_POST[action]}两个hook,不知道是不是可以用在处理Ajax请求中。有待研究…