我是编码新手,并试图通过实践来学习东西。
目前,我正在尝试使用 wordpress 做一些非常简单的事情。我正在尝试使用一些外部数据在 WordPress 中创建一些帖子。
我可以使用 CURL 获取数据。没问题,直接使用 Wp_insert_post 发布。
但是,我想要做的是通过单击管理面板中的按钮来触发 wp_insert_post 函数(我已将其创建为插件和单独的插件仪表板,其中嵌入了按钮)。我一直在摆弄代码,并将数据发送到 wp-admin-ajax.php 工作正常,并给出响应代码 200 。但是,接收的响应是 "0" 。如果传递的数据正确,我认为响应应该是“1”?
我现在有以下代码。
//Button
<form id="formtesting">
<input type="text" id="name" placeholder="Name">
<input type="submit" id="user-submit" value="user-submit">
//Ajax Call
$(document).ready(function() {
var userSubmitButton = document.getElementById('user-submit');
var adminAjaxRequest = function(formData, myaction) {
$.ajax({
type: 'POST',
dataType: 'json',
url: '/wpdevelopment/wp-admin/admin-ajax.php',
data: {
action: myaction,
data: formData
},
success: function(response) {
if (true === response.success) {
alert('success');
} else {
alert(response);
}
}
});
};
userSubmitButton.addEventListener('click', function(event) {
event.preventDefault();
var formData = {
'name': document.getElementById('name').value
};
adminAjaxRequest(formData, 'data_submission');
});
});
这是我的测试函数 // 为了测试函数是否正确启动,我尝试发送一个 Json 错误,这样我就可以包含 wp_insert_post 详细信息。
function data_submission(){
wp_send_json_error( 'I am an error' );}
add_action( 'wp_ajax_data_submission', 'data_submission' );
add_action( 'wp_ajax_nopriv_data_submission', 'data_submission' );
无法定位故障所在。会提供一些帮助
谢谢
使用 add_action('wp_ajax_myaction', 'yours_callback_fanc');
wp_ajax_ 其余部分是您的操作名称,它定义在您的 ajax 调用中。就你而言,这是我的行为。
首先这不是在 wordpress 中使用 ajax 的标准方法, 使用 wp_localize_script 嵌入全局 ajax_url 变量,
wp_register_script('plugin-ajaxJs', plugins_url('/js/ajax-call.js', __FILE__));
wp_enqueue_script('plugin-ajaxJs');
wp_localize_script('plugin-ajaxJs', 'my_ajax_url', array('ajax_url' => admin_url('admin-ajax.php')));
现在作为ajax中的url,您可以添加my_ajax_url.ajax_url, 这将向 admin-ajax.php 发送请求。
现在回答你的问题 你返回一个 wp_json_error 所以结果是 0, 使用它并在ajax成功时返回你想要的任何数据,
$response = array();
$response['result'] = 1;
wp_send_json($response);