温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!
WordPress Ajax留言是一种通过Ajax技术实现的无刷新留言功能。通过Ajax,用户可以在不刷新页面的情况下提交留言并实时显示在页面上。
我们需要在主题的functions.php文件中添加以下代码,来处理Ajax请求并保存留言:
// 添加Ajax处理函数
add_action( 'wp_ajax_submit_comment', 'submit_comment' );
add_action( 'wp_ajax_nopriv_submit_comment', 'submit_comment' );
function submit_comment() {
// 获取留言内容
$comment_content = $_POST['comment_content'];
// 创建新留言
$comment_data = array(
'comment_content' => $comment_content,
'comment_author' => get_current_user_id(),
'comment_approved' => 1
);
$comment_id = wp_insert_comment( $comment_data );
// 获取新留言的HTML
$comment_html = get_comment_markup( $comment_id );
// 返回新留言的HTML
echo $comment_html;
// 终止请求
wp_die();
}
接下来,在主题的JavaScript文件中,我们需要编写以下代码,来处理用户提交留言的操作:
jQuery(document).ready(function($) {
// 监听留言表单的提交事件
$('#comment_form').submit(function(e) {
e.preventDefault();
// 获取留言内容
var comment_content = $('#comment_content').val();
// 发送Ajax请求
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'submit_comment',
comment_content: comment_content
},
success: function(response) {
// 在页面上实时显示新留言
$('#comment_list').prepend(response);
// 清空留言表单
$('#comment_content').val('');
}
});
});
});
在上述代码中,我们首先监听了留言表单的提交事件,并阻止了默认的表单提交行为。然后,我们获取了留言内容,并通过Ajax发送了一个POST请求到WordPress的Ajax处理函数`submit_comment`。在成功回调函数中,我们将服务器返回的新留言HTML插入到留言列表的最前面,并清空留言表单。
通过上述的代码示例,我们可以实现一个基于WordPress和Ajax的留言功能,用户可以在不刷新页面的情况下提交留言并实时显示在页面上。