2016-11-06 175 views
1

我是新來的代碼,並試圖通過做他們學習的東西。Wp_admin ajax請求返回響應「0」

目前,我正在嘗試使用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_i nsert_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'); 

無法找到故障所在。一些幫助將appriciated

TKS

+0

我認爲問題可能在您的wp-admin-ajax.php文件中。你能顯示你的PHP文件代碼嗎? – CrazyVK56

+0

我不使用一個單獨的或自定義的內置wp-admin-ajax.php,我直接向默認wordpress發送請求admin-ajax.php – Shirantha

回答

0

首先,這不是用在WordPress, 使用wp_localize_script AJAX嵌入全球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網址你可以添加my_ajax_url.ajax_url, 這會發送一個請求到admin-ajax.php。

現在來到你的問題那麼結果爲0, 使用本並返回在阿賈克斯成功希望的任何數據 你是返回一個wp_json_error,

$responce['result'] = 1 
wp_send_json($response); 
+0

謝謝Parth,我已經使用該方法添加ajax url,嘗試並且仍然沒有運氣,錯誤是一樣的,然後我使用標準的ajax_url,沒有好運,然後將直接url放到ajax-url(如控制檯中顯示)以發出ajax請求。在控制檯日誌上,我得到代碼200,好的。我猜想發送的數據是炒作的,但是,我沒有得到成功的迴應。讓我從控制檯日誌 – Shirantha

+0

上傳一個屏幕截圖,而不是使用wordpress函數wp_send_json只是嘗試echo'你想返回的字符串'並添加死亡; @Shirantha –

+0

屏幕截圖從控制檯[link](http:// i66。 tinypic.com/2nlqmp3.jpg) – Shirantha

1

使用ADD_ACTION(「wp_ajax_myaction」,「yours_callback_fanc 「);

wp_ajax_ 剩下的部分就是你的動作名稱,它被定義爲你的ajax調用。在你的情況下,這是我的行動。

+0

我也試過,但沒有運氣。
無論如何,爲了討論,我想我已經使用了回撥功能。 – Shirantha

+0

我也試過,但沒有運氣。
無論如何,對於討論,我想我已經使用了回調函數,在click事件中。這是否是一種錯誤的方式? – Shirantha

+0

在你的函數中,最後一行必須是wp_die(); –