我一直在尝试将一些以前可用的ajax移植到我正在帮助开发的WordPress插件。
在前端,我的javascript看起来像
// this is inside a succesfully called JS function
jQuery.ajax({
action: \'mbp-deleteFrame\',
url: mbp_Ajax.ajaxurl,
type:"POST",
data:{\'deleteFrame\':id},
success: function(resp){
console.log(resp);
}
});
在我的主插件文件中,我还有
<?php
function mbp_admin_scriptInsert(){
wp_register_script(\'mbp_admin_scripts\',
plugins_url(\'/js/mbp_admin_scripts.js\', __FILE__), array(\'jquery\') );
wp_enqueue_script( \'mbp_admin_scripts\');
wp_localize_script(\'mbp_admin_scripts\', \'mbp_Ajax\', array(
\'ajaxurl\' => admin_url(\'admin-ajax.php\' ),
)
);
}
add_action(\'wp_ajax_mbp-deleteFrame\',\'mbp_deleteFrame_handle\' );
add_action(\'wp_ajax_nopriv_mbp-deleteFrame\',\'mbp_deleteFrame_handle\' );
我的add\\u action命令引用的另一个函数是
function mbp_deleteFrame_handle(){
echo \' This is a response!\';
die();
我只是在学习如何使用AJAX管理WP交互,但到目前为止,这是一个毫无结果的过程。
现在,我的理解是,我需要传递admin ajax的url。php到JSwp_localize_script()
. 从我所看到的情况来看,我已经做到了这一点,并且它已经通过该行提供给了AJAX调用url: mbp_Ajax.ajaxurl
. 那么,我有action: mbp-deleteFrame
, 据我所知,这一行应该触发两个add_action()
函数,并调用“mbp\\u deleteFrame\\u handle()”。从那以后,我想我会在回应中得到回音,但现在,我在控制台和Chrome的回应选项卡中都只得到了0。
有谁能再看看这个,告诉我我哪里做不到?