我正在尝试摆脱插件。中的js文件,但它不起作用。
此处调用{部分代码):
class awqsf{
const post_type = \'awqsf\';
function __construct(){
// style for front end
add_action( \'wp_enqueue_scripts\', array($this,\'awsqf_front_styles\'), false, \'1.0\', \'all\',1 );
}
function awsqf_front_styles(){
wp_register_script( \'awqsf-frontjs\', plugins_url( \'js/awqsf-front.js\', __FILE__ ), array(\'jquery\'), \'1.0\' );
wp_enqueue_script(\'awqsf-frontjs\');
}
} //end class
我尝试了很多不同的版本,wp\\u deregister\\u script和remove\\u action,但似乎无法摆脱:
//deregister awqsf
function my_deregister_scripts() {
//wp_register_script( \'awqsf-frontjs\', plugins_url( \'js/awqsf-front.js\', __FILE__ ), array(\'jquery\'), \'1.0\' ); // the original wp_register_script
wp_deregister_script( \'awqsf-frontjs\', \'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\', array(\'jquery\'), \'1.0\' );
wp_deregister_script("wp_enqueue_scripts", \'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\', array("awqsf","awsqf_front_styles"), false, \'1.0\', \'all\',1 );
wp_deregister_script( \'awqsf-frontjs\', array(\'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\', \'jquery\'), false, \'1.0\', \'all\',1 );
wp_deregister_script(\'awqsf\',\'awqsf-front.js\');
wp_deregister_script(\'awqsf\');
//function awsqf_front_styles(){} // the function
//add_action( \'wp_enqueue_scripts\', array($this,\'awsqf_front_styles\'), false, \'1.0\', \'all\',1 ); // the original add_action
remove_action( \'wp_enqueue_scripts\', array(\'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\',\'awsqf_front_styles\'), false, \'1.0\', \'all\',1 );
remove_action( \'awqsf\', array(\'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\',\'awsqf_front_styles\'), false, \'1.0\', \'all\',1 );
remove_action( \'awqsf\', array(\'http://www.spijkerbroek.me/wp-content/plugins/advance-wp-query-search-filter/js/awqsf-front.js\',\'wp_enqueue_scripts\'), false, \'1.0\', \'all\',1 );
}
add_action( \'wp_awqsf_scripts\', \'my_deregister_scripts\', 1 );
有人能帮我找到正确的方向吗?
SO网友:gmazzap
你需要的很简单dequeue 剧本。(我说过,一旦脚本立即进入队列,就退出队列,而不是取消注册,只需取消注册,它就会抛出一个错误,因为WP会尝试将未注册的脚本加入队列)。
但是要让某个东西出列,必须先让某个东西入列,因此通常必须查看调用入列函数的优先级\'wp_enqueue_scripts\'
并使用较低优先级(较高优先级编号)。
在您的情况下,请看这一行:
add_action(\'wp_enqueue_scripts\', array($this,\'awsqf_front_styles\'),false,\'1.0\',\'all\',1);
这是
wrong. 插件作者正在使用的参数
wp_enqueue_script
在函数中
add_action
.
如果你进去看看Codex add_action
接受4个参数:
add_action($tag, $function_to_add, $priority, $accepted_args)
所以插件作者正在使用
false
像
$priority
和
\'1.0\'
像
$accepted_args
.
\'all\'
和
1
将被完全忽略。
当然,这是一个错误,但WordPress可以使用默认的优先级10
.
一旦知道了这一点,就可以使用较低的优先级(较高的优先级编号)并将脚本出列:
add_action( \'wp_enqueue_scripts\', \'remove_awsqf_front_script\', 30);
function remove_awsqf_front_script() {
wp_dequeue_script(\'awqsf-frontjs\');
}
仅此而已。