如何从活动主题中删除所有入队资产?

时间:2019-11-14 作者:Sridhar Katakam

https://gelwp.com/articles/removing-all-enqueued-and-default-css-scripts-in-wordpress/ 具有删除所有排队样式的代码,包括除活动主题中的插件外,可能来自其他插件的样式。

是否可以仅从当前活动主题中删除所有排队资产,而不硬编码主题名称,或者在不知道哪个主题处于活动状态时?

i、 e.实现

remove_action( \'wp_enqueue_scripts\', \'twentynineteen_scripts\' );
当Twenty十九主题处于活动状态时

remove_action( \'wp_enqueue_scripts\', \'twentytwenty_register_styles\' );
remove_action( \'wp_enqueue_scripts\', \'twentytwenty_register_scripts\' );
当二十点二十激活时。

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

给你。我从mailoptin插件中取出了这个。使代码适应您的用例。

add_action(\'wp_enqueue_scripts\', function () use ($wp_get_theme) {
                global $wp_styles;
                global $wp_scripts;

            $wp_get_theme = wp_get_theme();

                $child_theme  = $wp_get_theme->get_stylesheet();
                $parent_theme = $wp_get_theme->get_template();

                foreach ($wp_scripts->registered as $key => $value) {
                    $src = $value->src;
                    if (strpos($src, "themes/$child_theme/") !== false || strpos($src, "themes/$parent_theme/") !== false) {
                        unset($wp_scripts->registered[$key]);
                    }

                    if (strpos($src, "/uploads/$child_theme/") !== false || strpos($src, "/uploads/$parent_theme/") !== false) {
                        unset($wp_scripts->registered[$key]);
                    }


                }

            }, 20);

相关推荐