有没有办法阻止Wordpress从wp-includes / js自动将脚本插入到我的主题中?我可以使用/选择添加我自己的东西,这有点烦人。
谢谢!
实际上它不包括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' );
}
谢谢!
答案 0 :(得分:3)
大多数脚本(即jQuery)都由依赖它们的插件排队。由于jQuery附带了WordPress,因此可以轻松地分发精简,轻量级的插件,并使用wp-includes/js
从wp_enqueue_script('jquery')
调用脚本。事实上,这是在您的网站上包含脚本的推荐方式(不确定您如何使用/选择自己的脚本,但这是次要点)。
要删除默认脚本,您可以使用类似的调用: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,但用你正在使用的任何东西替换那里的版本号)并在系统中将其重新排队。然后应该满足所有依赖项,并且一切都应该按预期工作。