我繼承了一個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