将JavaScript引用插入到所有WordPress页面中

时间:2013-01-25 02:24:53

标签: php wordpress

我们有一个WordPress MU安装(v2.6.2),我正在试图弄清楚如何将JavaScript文件的引用包含到所有服务的页面中。研究表明,关键是要使用wp_enqueue_scripts,但我不知道将调用放在何处。

我想我可以通过为每个主题添加对header.php的调用来实现我想要的。但是有一个地方我可以做到这一点,所以我不必更新每个主题header.php文件?

我不要求将JavaScript包含在管理页面中,但是如果解决方案导致这种情况发生并不重要。

1 个答案:

答案 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');
?>

以下是wp_enqueue_script()

的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中存在多个已知的安全问题。更不用说一些非常棒的新功能了。