我正在尝试在我的主题中使用Sage构建测试AJAX请求。所以我需要让我的scripts.js文件知道WP的AJAX处理脚本的正确URL。
这是在scripts.js:
console.log(resources_ajax.ajax_url);
,这是在extras.php
wp_localize_script( 'sage/js', 'resources_ajax', array( 'ajax_url' => admin_url('admin-ajax.php') ));
我收到此错误:ReferenceError:resources_ajax未定义
这会让我相信我有错误的句柄作为wp_localize_script的第一个参数...但是我看了一下scripts.js被命中的地方(也注册了它),就是这样:
wp_enqueue_script('sage/js', Assets\asset_path('scripts/main.js'), ['jquery'], null, true);
所以我不确定为什么数据没有传入。
答案 0 :(得分:1)
确保在调用wp_localize_script函数之前注册了脚本。 所以它应该按顺序排列:
wp_enqueue_script('sage/js', Assets\asset_path('scripts/main.js'), ['jquery'], null, true);
wp_localize_script( 'sage/js', 'resources_ajax', array( 'ajax_url' => admin_url('admin-ajax.php') ));
此处更多参考:https://codex.wordpress.org/Function_Reference/wp_localize_script