2010-09-01 62 views
0

有没有办法阻止Wordpress从wp-includes/js自动插入脚本到我的主题?这有点令人讨厌,我可以使用/选择添加自己的。停止Wordpress自动插入脚本

谢谢!


其实这还不包括jQuery的,但scriptaculous.js和effects.js出于某种原因,他们与jquery干扰。难道只是放在一起:

add_action('wp_print_scripts', 'my_deregister_javascript', 100); 

function my_deregister_javascript() { 
    wp_deregister_script('scriptaculous'); 
    wp_deregister_script('effects'); 
} 

谢谢!

回答

3

大多数脚本(即jQuery)都由依赖它们的插件排队。由于jQuery附带WordPress,因此它可以轻松分发精简而轻量级的插件,只需使用wp_enqueue_script('jquery')即可从wp-includes/js调用脚本。实际上,这是在您的网站上添加脚本的推荐方式(不确定您如何使用/选择自己的,但这是次要的)。

要删除默认脚本,可以使用类似的调用:wp_deregister_script('jquery');。这将从队列中删除名为“jquery”的脚本,并且不会包含它。下面是完整的代码,你会在你的functions.php文件放在:

add_action('wp_print_scripts', 'my_deregister_javascript', 100); 

function my_deregister_javascript() { 
    wp_deregister_script('jquery'); 
} 

请记住,虽然,一些插件可能仍然取决于这个脚本。当你注册一个脚本时,你通常会在注册中添加任何依赖关系......所以如果一个脚本依赖于jQuery并且你已经像这样删除了它,那么你最终会打破插件,因为其他脚本(即使您通过网站上的<script></script>标记手动添加jQuery)

要避免这种情况,您需要使用WordPress的注册/排队引擎来重新添加您自己的版本的jQuery:

add_action('wp_print_scripts', 'my_deregister_javascript', 100); 

function my_deregister_javascript() { 
    wp_deregister_script('jquery'); 
    wp_enqueue_script('jquery', PATH_TO_YOUR_JQUERY_VERSION, '', '1.4.2'); 
} 

这将重新添加的jQuery(我假设你正在使用1.4.2版本,但无论你使用更换版本号有),并对其进行排队的备份系统。那么应该满足任何依赖关系一切都应该按预期工作。

+0

很酷。是的,我只是喜欢能够与谷歌托管的jquery和东西去。但我完全理解如何使用包含的脚本作为建议。非常感谢。 – Marc 2010-09-02 07:30:20