Wordpress:通过ajax获取评论数

时间:2015-10-25 11:59:00

标签: php ajax wordpress comments

我使用wpdiscuz插件进行评论系统。 但我有一个麻烦:如果我添加评论,确定我的<?php comments_number( $zero, $one, $more ); ?>没有更新。

我是wordpress的新手,我需要知道,添加动态评论计数更新的最佳方法是什么?

例如,检查注释计数每30秒,我可以用jQuery编写:没问题。

但是如何在没有大量自定义代码的情况下通过ajax访问注释计数?这是真的吗?

1 个答案:

答案 0 :(得分:1)

在WordPress中使用AJAX非常简单,因为WP已经内置了处理AJAX请求的核心功能。 I had created tutorial on submitting form via AJAX in WP here。我相信在你的情况下你不会提交表单,但只是想在服务器端反复请求某些操作,在那里你将返回注释计数。

所以用jQuery创建post ajax函数:

var data = {
    // ... some data
    'action' => 'get_comments_count', // This data 'action' is required
}

// I specified relative path to wordpress ajax handler file, 
// but better way would be specify in your template via function admin_url('admin-ajax.php')
// and getting it in js file
$.post('/wp-admin/admin-ajax.php', data, function(data) {
    alert('This is data returned from the server ' + data);
}, 'json');

然后在你的functions.php中,wrtie是这样的:

add_action( 'wp_ajax_get_comments_count', 'get_comments_count' );
add_action( 'wp_ajax_nopriv_get_comments_count', 'get_comments_count' );
function get_comments_count() {
    // A default response holder, which will have data for sending back to our js file
    $response = array();

    // ... Do fetching of comments count here, and store to $response

    // Don't forget to exit at the end of processing
    exit(json_encode($response));
}

然后使用setInterval或setTimeout在js文件中重复调用ajax函数。

这是一个快速示例,要了解有关WordPress中ajax如何工作的更多信息,请阅读本教程。

希望它有所帮助!