温馨提示:这篇文章已超过299天没有更新,请注意相关的内容是否还可用!
WordPress评论ajax加载是一种通过使用ajax技术来实现无需刷新页面即可加载新评论的方法。通过ajax,可以在用户提交评论后,将评论数据发送到服务器并接收新评论数据,然后将新评论追加到页面上,从而实现实时加载评论的效果。
在WordPress主题的functions.php文件中,我们需要添加一个用于处理ajax请求的函数。这个函数将接收前端发送的评论数据,并将新评论插入到数据库中。示例代码如下:
function ajax_load_comments() {
$post_id = $_POST['post_id']; // 获取文章ID
$comment_author = $_POST['author']; // 获取评论作者
$comment_content = $_POST['content']; // 获取评论内容
// 创建新评论
$commentdata = array(
'comment_post_ID' => $post_id,
'comment_author' => $comment_author,
'comment_content' => $comment_content,
'comment_approved' => 1, // 评论自动审核通过
);
// 插入新评论到数据库
$comment_id = wp_insert_comment($commentdata);
// 获取新评论的HTML代码
$comment = get_comment($comment_id);
$comment_html = wp_list_comments('type=comment&callback=custom_comment_callback&echo=0', array($comment));
// 返回新评论的HTML代码
echo $comment_html;
die(); // 终止脚本执行
}
add_action('wp_ajax_nopriv_load_comments', 'ajax_load_comments');
add_action('wp_ajax_load_comments', 'ajax_load_comments');
然后,在主题的JavaScript文件中,我们需要编写一个用于发送ajax请求的函数,以及一个用于处理服务器返回的新评论数据的函数。示例代码如下:
function loadComments() {
var post_id = 123; // 文章ID
var author = 'John Doe'; // 评论作者
var content = 'This is a new comment.'; // 评论内容
// 发送ajax请求
jQuery.ajax({
url: ajaxurl, // WordPress提供的ajax接口URL
type: 'POST',
data: {
action: 'load_comments',
post_id: post_id,
author: author,
content: content
},
success: function(response) {
// 在页面上追加新评论
jQuery('#comments').append(response);
}
});
}
在需要加载新评论的地方调用loadComments函数即可实现ajax加载评论的效果。例如,在点击"提交评论"按钮后调用loadComments函数。这样,当用户提交评论后,新评论将通过ajax加载到页面上,无需刷新整个页面。
以上就是WordPress评论ajax加载的示例代码和解释。通过使用ajax技术,我们可以实现无需刷新页面即可加载新评论的功能,提升用户体验。