我是新人。试图测试创建一个插件,将我的js和ajax组合成一个模块。我做了以下事情:
[不确定我是否需要在admin-ajax.php中添加任何内容。]
test.php内容如下:
/ ** *插件名称:测试 * /
add_action("wp_ajax_my_test", "my_test");
add_action("wp_ajax_nopriv_my_test", "my_test");
function my_test()
{
echo "in ajax";
}
add_action( 'init', 'test_script_enqueuer' );
function test_script_enqueuer() {
wp_register_script( "test", WP_PLUGIN_URL.'/my_plugin/test.js', array('jquery') );
wp_localize_script( 'test', 'myAjax', array( 'ajaxurl' => admin_url( 'admin-ajax.php' )));
wp_enqueue_script( 'jquery' );
wp_enqueue_script( 'test');
}
test.js代码如下:
$(document).ready(function()
{
console.log('in js!');
$('#testDiv')。on('click','#test',function() { 的console.log( '点击!');
jQuery.ajax(
{
类型:'POST',
url:myAjax.ajaxurl,
数据:
{
行动:'my_test'
},
dataType:'json',
cache:false,
成功:功能(响应)
{
警报(响应);
},
错误:函数(xhr,textStatus,errorThrown)
{
警报( '错误');
}
});
})
});
请注意,我甚至看不到“in js!”我的控制台中的消息。
答案 0 :(得分:0)
更改
add_action( 'init', 'test_script_enqueuer' );
到
add_action("wp_enqueue_scripts", "test_script_enqueuer");
但首先,尝试回复一下php文件中的内容。如果没有任何反应,您的文件就不会被呼叫。
然后试试告诉我。