为javascript和php建立全局变量

时间:2016-02-19 15:33:16

标签: javascript php wordpress

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

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

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

1 个答案:

答案 0 :(得分:1)

在Wordpress中执行此操作的真实,正确的方法是使用wp_localize_script(在主题 functions.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);
}

然后要访问 script.js 中的var1,请执行以下操作:script_vars.var1