为 JavaScript 和 php 建立全局变量


Establish global variables for javascript and php

我继承了一个wordpress网站,该网站将主javascript存储在.php文件中,因为它使用在网站的其他php模板中设置的全局变量。例如,主 javascript 文件使用依赖于 php 变量的条件,如下所示:

<?php if ($GLOBALS['page_class'] == 'news' ?>
      $("foo").someJavaScriptAction();

我的追求是将这个主要的javascript文件重写为一个纯.js文件,而不依赖于任何php。有没有办法检查.js文件中的那些 php 变量?如果没有,在我的新.js文件中检查这些变量的策略是什么?

Wordpress中执行此操作的真正正确的方法是使用wp_localize_script(在您的主题函数中使用它.php):

function enqueue_scripts() {
    wp_register_script('theme-script', get_stylesheet_directory_uri() . '/js/script.js', array('jquery'), '', true);
    wp_localize_script('theme-script', 'script_vars', array(
        'var1'  => $GLOBALS['var1'],
        'var2'  => $GLOBALS['var2']
    ));
    wp_enqueue_script(theme-script);
}

然后,要访问脚本中的var1.js只需执行以下操作:script_vars.var1