无法使用wp_deregister_script取消注册脚本

时间:2017-04-03 作者:CROSP

我正试图操纵Disqus 我的头版上的脚本,但不幸的是我无法管理如何做到这一点。

下面是我所做步骤的一个小故事。

在插件的源代码文件中查找脚本名称

wp\\u register\\u script(\'dsq\\u count\\u script\',plugins\\u url(\'/media/js/count.js\',FILE ) ); wp\\u localize\\u脚本(\'dsq\\u count\\u script\',\'countVars\',$count\\u vars);wp\\u enqueue\\u script(\'dsq\\u count\\u script\',plugins\\u url(\'/media/js/count.js\',FILE ) );

为添加操作wp_print_scripts

add_action(\'wp_print_scripts\', array($this, \'deregister_unused_scripts\'), 100);
实施deregister_unused_scripts 作用

public function deregister_unused_scripts()
{
    wp_dequeue_script(\'dsq_count_script\');
    wp_deregister_script(\'dsq_count_script\');
}
仍然不起作用。

我还试了另一个钩子

    add_action(\'wp_footer\', array($this, \'deregister_unused_scripts\'), 100);
但这也没什么帮助,我仍然在页脚中得到了一个输出。

<script type=\'text/javascript\'>
/* <![CDATA[ */
var countVars = {"disqusShortname":"myname"};
/* ]]> */
</script>
<script type=\'text/javascript\' src=\'http://myurl.net/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.7.3\'></script>
可能有什么问题?

EDIT

下面是用于注册插件脚本的操作。

add_action(\'wp_footer\', \'dsq_output_footer_comment_js\');

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

当试图将脚本出列时,我们需要在脚本入列后但在打印之前挂接。在本例中,disqs插件使用wp_footer 以10的优先级挂接以使脚本排队。页脚脚本在wp_footer 优先级为20。所以我们应该能够wp_footer 优先级为11,并将脚本出列。

add_action( \'wp_footer\', \'wpse_262301_wp_footer\', 11 );
function wpse_262301_wp_footer() { 
  wp_dequeue_script( \'dsq_count_script\' ); 
}

SO网友:gtamborero

add\\u action(\'wp\\u footer\')对我不起作用,但它有“wp\\u enqueue\\u scripts”:

add_action( \'wp_enqueue_scripts\', \'my_deregister_scripts\', 1000 );
 function my_deregister_scripts() {
   wp_deregister_script( \'wdm_script\' );
   wp_dequeue_script(\'wdm_script\');
   wp_deregister_script( \'enjoyHint_script\' );
   wp_dequeue_script(\'enjoyHint_script\');
}

相关推荐