我继承了一个wordpress网站,该网站将主要的javascript存储在.php文件中,因为它使用了在站点的其他php模板中设置的全局变量。因此,例如,主要的Javascript文件使用条件语句依靠PHP变量是这样的:为javascript和php建立全局变量
<?php if ($GLOBALS['page_class'] == 'news' ?>
$("foo").someJavaScriptAction();
我的任务是重新写这个主要javascript文件是一个纯粹的.js文件,而不是依赖于任何PHP。有没有一种方法可以检查.js文件中的那些php变量?如果没有,在新的.js文件中检查这些变量的策略是什么?
不幸的是,编写代码的人做了一件糟糕的工作。 Wordpress有自己的处理方式,使用[wp_localize_script](https://codex.wordpress.org/Function_Reference/wp_localize_script) – adeneo
你可以'var wpvars = <?php echo json_encode($ GLOBALS)?>'脚本标记,以便它可以从'window'解析。然后遍历'window.wpvars'上的.js文件中的对象。 – jtrumbull
除了根据其他注释注入JSON之外,如果JS块很大,可以将它们分割成.js文件,并使用[wp_enqueue_script](https://developer.wordpress.org/reference/functions/wp_enqueue_script/)有条件地排队他们。您也可以使用CSS类来触发行为 - 例如'if($(“。page_class”))$(“foo”)....' – Kenney