我在wordpress插件上遇到了问题。我按照所需的步骤使用AJAX在我的gallery插件上添加图像,但是jQuery.post并没有调用我的php函数。我为javascript部分使用了一个名为gallery.js的独立文件。将显示javascript文件中的控制台日志,但不会显示add_image_ajax_callback php函数中的控制台日志。
以下是我的上传脚本:
wp_enqueue_script('gallery_widget',plugin_dir_url(__FILE__).'gallery.js', array('jquery'));
wp_localize_script( 'gallery_widget', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
这是我的行动声明:
add_action( 'wp_ajax_add_image_ajax_request', 'add_image_ajax_callback' );
我不需要使用wp_ajax_nopriv_add_image_ajax_request
,因为我必须登录才能执行此操作
这是gallery.js文件:
$(".admin_gallery_photo_add").on("click", function() {
console.log("click");
var data = {
'action':'add_image_ajax_request',
'urlImg' : 'test'
}
// This does the ajax request
jQuery.post(
ajax_object.ajax_url,
data,
function(response) {
// This outputs the result of the ajax request
var str2 = "data action: ";
console.log(str2.concat(data["action"]));
var str2 = "data urlImg: ";
console.log(str2.concat(data["urlImg"]));
}
);
});
最后是add_image_ajax_callback php函数:
?>
<script>
console.log("add_image_ajax_request");
alert("lol");
</script>
<?php
echo "lol";
我在这个论坛中发现了一个类似的帖子,但我没有有效的答案,这篇文章是两年前发表的(我无法评论):WordPress WP_ajax not working