我是新手的代码,并试图通过这样做来学习。
目前,我正在尝试使用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');
});
});
&#13;
这是我的测试函数//来测试函数是否正确启动,我尝试发送一个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' );
找不到故障的位置。一些帮助将是适当的
tks
答案 0 :(得分:1)
使用add_action(&#39; wp_ajax_myaction&#39;,&#39; yours_callback_fanc&#39;);
wp_ajax_ 保留部分是你的动作名称,定义在你的ajax调用中。在你的情况下,这是我的行为。
答案 1 :(得分:0)
首先,这不是在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成功中返回您想要的任何数据,
$responce['result'] = 1
wp_send_json( $response );