我们有一个WordPress MU安装(v2.6.2),我正在试图弄清楚如何将JavaScript文件的引用包含到所有服务的页面中。研究表明,关键是要使用wp_enqueue_scripts,但我不知道将调用放在何处。
我想我可以通过为每个主题添加对header.php的调用来实现我想要的。但是有一个地方我可以做到这一点,所以我不必更新每个主题header.php文件?
我不要求将JavaScript包含在管理页面中,但是如果解决方案导致这种情况发生并不重要。
答案 0 :(得分:1)
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');
?>
的codex页面
*注意:在构建JS文件的URL时,请查看these functions。
您可以将其添加到每个主题的functions.php
文件中,也可以将其另存为PHP文件并将其用作must use plugin。如果您想将其设为必须使用的插件,请将其放在 wp-content / mu-plugins 目录中,它将自动为所有网站运行。在更新版本的WordPress中,您还可以将其设置为普通插件并通过网络激活它,但我认为您的版本中没有该选项。
关于您可能遇到的与您正在运行的版本相关的任何问题:
我知道在2.6中添加了wp_enqueue_script()
,但我不确定相应的wp_enqueue_scripts
挂钩。如果它不起作用,您可以尝试挂钩init
:
add_action('init', 'my_scripts_method');
如果wp_enqueue_script()
不起作用,您甚至可以通过对init
的裸露电话而不将其挂钩到某个操作中。如果您必须使用其中任何一个,您应该使用以下条件将其包围,以防止它被添加到您的管理屏幕中:
if ( ! is_admin() ) {
/* code */
}
老实说,你真的应该考虑升级。我知道这可能很痛苦,但旧版WordPress中存在多个已知的安全问题。更不用说一些非常棒的新功能了。