如何修改wp_head中正在输出的内容,无论是通过主题还是WordPress?

时间:2013-04-13 作者:Joel Glovier

我一直在使用YSLOW来提高网站的性能,并注意到Wordpress it会在我的文档头中输出我知道不需要的东西。

例如,我已经从Google CDN调用了jQuery 1.9,所以我不需要在wp includes中调用jQuery。

另外,一个插件包含了一个我不需要的样式表(因为我在我的主题中覆盖了99%的样式),所以我也希望摆脱这个调用。

那么,如何编辑wp_head() 函数,无论Wordpress是否将其放在那里(如wp-includes jQuery调用)或插件是否将其放在那里(如样式表调用)?

2 个回复
SO网友:Chip Bennett

首先:don\'t enqueue custom versions of WordPress core-bundled scripts, 包括(尤其是)jQuery。

其次,回答您的问题:这些插件脚本和样式表是排队的,使用add_action(), 通过连接到以下操作挂钩之一的回调:

  • wp_head
  • wp_enqueue_scripts
  • wp_print_scripts
  • wp_print_styles
(还有其他的,但这些是最有可能的。)

在回调中,以下函数用于排队:

样式表:wp_enqueue_style()wp_enqueue_script()foobar.css, 您需要在插件文件中查找调用wp_enqueue_style(), 然后注意在其中调用的回调函数的名称。然后,找到add_action() 引用该回调函数的调用。e、 g.:

add_action( \'wp_head\', \'pluginname_enqueue_styles\' );
找到该调用后,您可以使用remove_action():

remove_action( \'wp_head\', \'pluginname_enqueue_styles\' );

SO网友:Matt Shelton

我不同意用CDN托管的版本覆盖默认版本是一种不好的做法。然而,您有责任确保使用的版本与所有插件兼容。确保彻底测试。

要用CDN版本覆盖默认jQuery,请在functions.php :

function replace_jquery() {
    if (!is_admin()) {
        wp_deregister_script(\'jquery\');
        wp_register_script(\'jquery\', \'http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\', false, \'1.9.1\');
        wp_enqueue_script(\'jquery\');
    }
}
add_action(\'init\', \'replace_jquery\');

结束

相关推荐

Travel Blog Plugins

今年晚些时候,我将使用Wordpress创建一个关于我旅行的博客。我希望该博客具有以下功能我的帖子将被地理定位一张包含帖子位置的地图,可以单击地图上的各个点到达帖子</我正在寻找最好/最合适的插件。谢谢,艾尔。