如果脚本已入队但未注册,我还可以删除它吗?

时间:2013-01-07 作者:Paul McCarthy

当用户加载我的插件的管理页面时,有一个插件与我的冲突,因此我想取消注册并删除这些页面上的冲突脚本。

以下是冲突脚本的代码:-

add_action( \'admin_head\', \'function_name\' );

function function_name() {
if ( is_admin() ) {
    wp_enqueue_script(
        \'script_name\',
        plugins_url(\'/js/some_javascript_file.js\', __FILE__ )
    );
}
}   
因此,在我的代码中,我检查用户是否在我们的管理页面中,如果是,我尝试按如下方式取消注册脚本:-

function admin_hc_deregister_conflicts() {
 wp_deregister_script(\'script_name\');
}

add_action(\'admin_head\', array($this,\'admin_hc_deregister_conflicts\'),11);
问题是脚本仍在我的管理区域加载,导致了很多问题!

请有人建议:-

i) 是否可以删除已排队但未注册的脚本?ii)我可以向插件中添加什么来删除加载在我们管理页面中的脚本,以避免冲突?

提前感谢!

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

是的,这是可能的,但你想使用wp_dequeue_script.

尝试以下操作:

<?php
function admin_hc_deregister_conflicts()
{
    wp_dequeue_script(\'script_name\');
}

SO网友:akTed

看见wp_dequeue_script. 请记住,您可能破坏了违规插件的功能,这是一种糟糕的形式(即使所述插件编写得很糟糕)。

由最终用户决定一个(可能)编码错误的插件是否值得使用,而你(无论多么善意)通过你的插件“修复”另一个插件,最终可能只会让你的插件看起来很糟糕。大多数用户都不在乎为什么有些东西能用或不能用。

结束

相关推荐