如何“取消挂接”/取消注册jQuery,以便它不会作为wp_footer();的一部分被调用?

时间:2012-02-01 作者:Brian

我需要从我的wp_footer() ... 它被自动调用,我正在寻找可以添加到函数中的内容。php,防止在页脚中再次调用它(因为我需要在页眉中调用它)

请不要评论为什么打页脚更好

2 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

您不想注销脚本;这将使其无法排队。相反,您希望退出脚本。

您有两个选择:

如果您知道回调函数wp_enqueue_script( \'jquery\' ) 被调用时,您只需调用remove_action( \'wp_footer\', \'callback_function_name\' )wp_dequeue_script(). 例如。

function theme_slug_dequeue_footer_jquery() {
     wp_dequeue_script( \'jquery\' );
}
add_action( \'wp_footer\', \'theme_slug_dequeue_footer_jquery\', 11 );
注意:优先级可能相当重要,因为您需要确保您的出列呼叫在排队呼叫后触发。

编辑我正在从默认的TwentyEleven主题自定义此主题。似乎是主题本身吸引了WordPress,而不是插件。我查看了默认函数。php和我在那里没有看到任何wp\\u enqueue\\u script()。还有别的地方我该看看吗?

您是否偶然查看了Showcase模板(即。showcase.php)? 请注意,它将自定义脚本排入队列:

wp_enqueue_script( \'twentyeleven-showcase\', get_template_directory_uri() . \'/js/showcase.js\', array( \'jquery\' ), \'2011-04-28\' );
它将jQuery添加到其dependents数组中,这意味着WordPress将首先将jQuery排队,然后再排队twentyeleven-showcase. 因此,这可能是神秘的jQuery排队的来源。

(还有一个wp_enqueue_script() 请来/inc/theme-options.php, 但我认为这不会影响您的前端脚本排队。)

SO网友:krembo99

取消注册任何脚本的功能是:

wp_deregister_script(\'jquery\');
但如果我理解正确的话,你的问题是不同的——你有两次包含jQury,一次在页眉,一次在页脚。这是一些插件或主题函数执行不正确-特别要求在页脚中打印。。您可能希望更好地识别问题,因为它可能会导致其他问题。。。

无论如何,示例挂钩是:(一个init,一个print\\u脚本)

function dl_register_common_js() {
wp_deregister_script(\'jquery\');
}
//add_action(\'init\', \'dl_register_common_js\'); // will deregister from head
add_action(\'wp_print_scripts\', \'dl_register_common_js\');

结束

相关推荐

使用wp_enQueue_script附加jQuery-UI

我正在尝试使用wp\\u enqueue\\u脚本加载jquery ui。我可以检查jquery是否已加载。jquery ui已注册,即var\\u dump的输出(wp\\u script\\u是(\'jquery ui tabs\',\'registered\');为bool(true),表示已注册,但未包含在页面中。我正在使用wordpress版本3.3.1出了什么问题?我附上函数的相关片段。php来自我的主题。<?php function my_scripts_method() {&