如何从我的WordPress前端中移除jquery?
如何从WordPress的前端删除jQuery?
有时候,您可能希望从WordPress的前端中删除jQuery。这可能是因为您的主题已经添加了jQuery,而您想要使用其他库或者没有使用jQuery的纯JavaScript代码。以下是解决这个问题的方法:
1. 首先,查看您的主题是否已经正确地添加了jQuery。如果是这样,它应该使用wp_enqueue_script()
函数。如果是这样,您可以使用wp_deregister_script()
函数来删除jQuery。只需在主题目录中的functions.php文件中添加以下代码即可:
wp_deregister_script('jquery');
2. 但是请注意,从整个网站中删除jQuery可能会对管理员部分产生意外的后果。为了避免在管理页面中删除jQuery,您可以使用以下代码代替:
if ( !is_admin() ) wp_deregister_script('jquery');
现在,只有非管理页面才会运行wp_deregister_script()
函数。
请注意,如果您删除了jQuery,某些插件可能会受到影响,因为它们可能依赖于jQuery。在删除jQuery之前,请确保没有插件会受到影响。
希望这些解决方法对您有帮助!
如何从我的WordPress前端中删除jquery?
有时候,您可能想要从WordPress前端中删除jquery。正确的方法是通过wp_dequeue_script和wp_deregister_script将其取消排队和注销。还要注意,前端脚本通过wp_enqueue_scripts钩子处理,而后端脚本通过admin_enqueue_scripts钩子处理。
那么,您可以按照以下步骤操作:
add_filter( 'wp_enqueue_scripts', 'change_default_jquery', PHP_INT_MAX ); function change_default_jquery( ){ wp_dequeue_script( 'jquery'); wp_deregister_script( 'jquery'); }
此方法已在WordPress版本4.0上进行了全面测试,并按预期工作。
作为概念验证,您可以在functions.php中粘贴以下代码。这将在您的网站的头部,后端和前端打印出成功或失败的消息。
add_action( 'wp_head', 'check_jquery' ); add_action( 'admin_head', 'check_jquery' ); function check_jquery() { global $wp_scripts; foreach ( $wp_scripts->registered as $wp_script ) { $handles[] = $wp_script->handle; } if( in_array( 'jquery', $handles ) ) { echo 'jquery has been loaded'; }else{ echo 'jquery has been removed'; } }
此外,它还可以删除所有插件的js。
2017年6月:我将这个答案的部分内容整合到了一个插件中:github.com/jonathanbell/remove-jquery-wordpress-plugin
我制作了一个开源的WP插件,其中包含许多用于管理WP上的jQuery的设置:github.com/Remzi1993/wp-jquery-manager
这样的实现方式让我感到困惑。为什么要调用两次函数来删除一个脚本呢?