禁用/注销所有插件中的所有JS

时间:2013-10-15 作者:luckyrajiv

如何禁用插件中的所有js文件,并加载一个组合并压缩的js文件?

有什么办法吗?

3 个回复
SO网友:Fran Cano

您可以安装如下插件asset Queue Manager 跟踪所有活动样式表和javascript文件(它非常整洁,您可以实时预览页面在没有资源的情况下的外观,以查看您的站点是否损坏),然后在主题中functions.php 文件中,输入如下代码

add_action( \'wp_print_scripts\', \'my_deregister_javascript\', 100 );
function my_deregister_javascript() {
  $deregistered_scripts=array(\'wc-add-to-cart\',
    \'woocommerce\',
    \'storefront-skip-link-focus-fix\',
    \'wc-add-to-cart-variation\',
    \'wc-cart-fragments\',
    \'storefront-navigation\',
    \'wc-single-product\');
  foreach ($deregistered_scripts as $key => $script) {
    wp_deregister_script( $script );
  }
}
(当然,您可能需要更换$deregistered_scripts 仅包含不使用的数组)

如果您的博客处于开发模式,并且在此之后发现错误消息,则可能是某些插件导致了此问题。尝试将@添加到的第250行/wp-includes/class.wp-scripts.php (我解决了woocommerce抛出的错误警告)

public function set_group( $handle, $recursion, $group = false ) {
        if ( @$this->registered[$handle]->args === 1 ) //"@" added
            $grp = 1;
        else
            $grp = (int) $this->get_data( $handle, \'group\' );

        if ( false !== $group && $grp > $group )
            $grp = $group;

        return parent::set_group( $handle, $recursion, $grp );
    }
Edit: 已从中添加注销脚本代码this blog article by Justin Tadlock

SO网友:Bryan Willis

与第一个答案类似,但这应该有效

function remove_all_scripts() {
   foreach( wp_scripts()->registered as $script ) {
      wp_dequeue_script( $script );
      wp_deregister_script( $script );
  }
} 
add_action(\'wp_enqueue_scripts\', \'remove_all_scripts\', PHP_INT_MAX);

SO网友:Eugene Manuilov

您可以尝试这样做:

add_action( \'wp_enqueue_scripts\', \'wpse8170_disable_all_scripts\', 9999 );
function wpse8170_disable_all_scripts() {
    global $wp_scripts, $wp_styles;

    $wp_styles = new WP_Styles(); // reset all styles
    $wp_scripts = new WP_Scripts(); // reset all scripts
}
但要注意,做你想做的事是一种坏习惯,可能会导致unexpected 未来的结果。

结束

相关推荐

意外删除了wp_options数据库表的active_plugins部分

好吧,所以我很确定我在这里完蛋了,因为我没有数据库备份,但我想我还是问问以防万一。在PhpMyAdmin中,我的意思是只需转到wp\\u options表并清空该表中的active\\u plugins部分,因为插件错误而无法登录。我点击了删除按钮,而不是清空它。是否有任何方法可以手动添加此表的active\\u插件部分?我尝试了修复数据库的方法,但没有成功。