Wp_admin ajax请求返回响应" 0"

时间:2016-11-06 07:03:47

标签: javascript php jquery ajax wordpress

我是新手的代码,并试图通过这样做来学习。

目前,我正在尝试使用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

&#13;
&#13;
$(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;
&#13;
&#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

2 个答案:

答案 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 );