要在WordPress中使用AJAX插入内容,可以按照以下步骤进行操作:
function insert_content_ajax() {
// 检查是否是合法的AJAX请求
if ( ! isset( $_POST['action'] ) || $_POST['action'] !== 'insert_content_ajax' ) {
return;
}
// 获取要插入的内容
$content = $_POST['content'];
// 在数据库中插入内容
$post_id = wp_insert_post( array(
'post_title' => 'New Post',
'post_content' => $content,
'post_status' => 'publish',
'post_type' => 'post'
) );
// 返回插入的内容的ID
echo $post_id;
// 必须终止脚本执行
wp_die();
}
add_action( 'wp_ajax_insert_content_ajax', 'insert_content_ajax' );
add_action( 'wp_ajax_nopriv_insert_content_ajax', 'insert_content_ajax' );
jQuery(document).ready(function($) {
// 当表单提交时触发AJAX请求
$('#my-form').submit(function(event) {
event.preventDefault();
// 获取要插入的内容
var content = $('#content').val();
// 发送AJAX请求
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'insert_content_ajax',
content: content
},
success: function(response) {
// 处理成功响应
console.log('Inserted content with ID: ' + response);
},
error: function() {
// 处理错误响应
console.log('Error inserting content');
}
});
});
});
在上述代码中,当表单提交时,通过AJAX发送POST请求到WordPress后台的admin-ajax.php文件。在服务器端,通过检查请求的action参数来确定要执行的函数。在本例中,我们使用insert_content_ajax
作为action参数。然后,我们通过wp_insert_post
函数将内容插入到WordPress数据库中,并将插入的内容的ID作为响应返回到JavaScript。最后,JavaScript根据响应处理成功或错误的情况。