我们有一个 WordPress MU 安装(v2.6.2),我试图弄清楚如何在所有提供的页面中包含对 JavaScript 文件的引用。研究表明,这样做的关键是使用 wp_enqueue_scripts,但我不知道在哪里调用它。
我想我可以通过为每个主题添加对 header.php 的调用来实现我想要的。但是有没有一个地方我可以做到这一点,所以我不必更新每个主题的 header.php 文件?
我不需要将 JavaScript 包含在管理页面中,但解决方案是否导致这种情况发生并不重要。
WordPress MU 在 3.0 版中集成到 WordPress 本身。这篇文章的当前版本是 3.5.1。我可以告诉您如何在当前版本中执行此操作,但可能需要对其进行调整以使其在您运行的版本中工作。
这将在标题中放置一个脚本:
<?php
function my_scripts_method() {
wp_enqueue_script(
'any-name-you-want',
'url/of/script'
);
}
add_action('wp_enqueue_scripts', 'my_scripts_method');
?>
*注意:在构建 JS 文件的 URL 时查看这些函数。
您可以将其添加到每个主题的functions.php
文件中,也可以将其保存为 PHP 文件并将其用作必须使用的插件。如果您想让它成为必须使用的插件,请将其放在wp-content/mu-plugins目录中,它将自动为所有站点运行。在更新的 WordPress 版本中,您还可以将其设为普通插件并通过网络激活它,但我认为您的版本中没有该选项。
关于您可能遇到的与您正在运行的版本相关的任何问题:
我知道wp_enqueue_script()
是在 2.6 中添加的,但我不确定相应的wp_enqueue_scripts
钩子。如果它不起作用,您可以尝试挂钩init
:
add_action('init', 'my_scripts_method');
如果也不起作用,您甚至可能会在wp_enqueue_script()
没有将其挂钩到操作中的情况下进行赤裸裸的调用。init
如果您必须使用其中任何一个,您应该使用以下条件将其包围,以防止它被添加到您的管理屏幕:
if ( ! is_admin() ) {
/* code */
}
老实说,你真的应该考虑升级。我知道这可能会很痛苦,但旧版本的 WordPress 中存在多个已知的安全问题。更不用说一些非常棒的新功能了。