Wordpress предлагает функцию wp_localize_script()
, которая позволяет передавать массив PHP в файл .js при регистрации в Wordpress.
Работает так
1) Зарегистрируйте ваш скрипт в Wordpress, используя wp_register_script () ;
Создайте массив ваших параметров, которые вы хотите отправить в скрипт.
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>
Примечание: вам нужно использовать wp_enqueue_script (), когда вы хотите, чтобы Wordpress включил файл JavaScript в заголовок.
Собираем все вместе
<?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>