Wordpress 提供了一个wp_localize_script() 函数,允许您在向 Wordpress 注册时将 PHP 数组传递给 .js 文件。
它是这样工作的
1) 使用 wp_register_script() 在 Wordpress 中注册您的脚本;
构建要发送到脚本的参数数组。
wp_enqueue_script('my-script','/path/to/script.js');
2) 构建要发送到脚本的参数数组。
$params = array('foo' => 'bar','setting' => 123);
3) 调用wp_localize_script() 并为您的参数指定一个唯一的名称。
wp_localize_script( 'my-script', 'MyScriptParams', $params );
4) 您可以通过如下方式访问 JavaScript 中的变量:
<script>
alert(object_name.some_string);
</script>
注意:当您希望 Wordpress 在标头中包含 JavaScript 文件时,您需要使用 wp_enqueue_script()。
综合考虑
<?php
$myPlugin = new MyPlugin();
//Add some JS to the admin section
add_action('admin_enqueue_scripts', array($myPlugin, 'adminJavaScript'));
class MyPlugin{
public function adminJavaScript() {
$settings = array(
'foo' => 'bar',
'setting' => 123
);
wp_register_script('myJavaScriptName', plugins_url('/myJavaScript.min.js', __FILE__));
wp_localize_script('myJavaScriptName', 'settings', $settings); //pass any php settings to javascript
wp_enqueue_script('myJavaScriptName'); //load the JavaScript file
}
}
?>
<script>
alert(settings.foo);
</script>