Sage:如何使用wp_localize_script()将extras.php中的PHP数据传递到scripts.js中?

时间:2017-09-14 18:15:32

标签: ajax wordpress

我正在尝试在我的主题中使用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); 

所以我不确定为什么数据没有传入。

1 个答案:

答案 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