我已经为我的网站创建了一个后端插件,我希望它可以与AJAX一起使用。但是我从AJAX响应中得到的全部是readyState:4和responseText:0。
script.js
jQuery(document).ready(function($){
$.ajax({
url: ajaxurl,
type: "POST",
data: {
action: 'my_action',
param: 'st1'
},
error : function(response){
console.log(response);
},
success : function(response){
console.log(response);
}
});
});
members_loop.php
add_action('wp_ajax_my_action', 'my_ajax_action_function');
add_action('wp_ajax_nopriv_my_action', 'my_ajax_action_function');
function my_ajax_action_function(){
$reponse = array();
if(!empty($_POST['param'])){
$response['response'] = "I've get the param a its value is ".$_POST['param'].' and the plugin url is '.plugins_url();
} else {
$response['response'] = "You didn't send the param";
}
header( "Content-Type: application/json" );
echo json_encode($response);
wp_die();
}
我正在插件内部使用三个文件来执行此操作,在我的plugin.php文件中声明了我的插件并排队了我的script.js文件。然后,我有一个模板文件,其中有两个文件夹,一个是members_loop.php,另一个是index.php(插件的“主页”)。然后,我的script.js文件中就有一个资产文件。不知道是否需要此信息,但我不认为我的ajax调用有误,所以我想知道出了什么问题。
问题更新
我只是将my_ajax_my_action功能和动作剪切并粘贴到我声明插件的plugin.php文件中,现在它可以工作了。那么,如何在外部文件中使用它呢?我是否需要在plugin.php文件中包含members_loop.php文件?
答案 0 :(得分:1)
如果文件路径为“ /wp-content/plugins/your_plugin/members_loop.php”,则在文件“ plugin.php”内添加require_once plugin_dir_path( __FILE__ ) . 'members_loop.php';
或require_once dirname(__FILE__) . '/members_loop.php';