$WP_STYLES->注册时没有给出所有样式吗?

时间:2015-06-13 作者:Andrew Newby

我对Wordpress编程相当陌生(已经使用了一段时间,但从未深入了解其本质)。所以,我试图将一些JS/CSS文件“缩小”为普通文件。我正在手动将这些文件合并到公共文件中。css和common。js-这不是问题(我需要这样做,以修复js/CSS文件中的../etc内容)

所以,在玩了很多游戏之后,我仍然很困惑。我试过:

$wp_styles->queue
但只需打印出一个文件(即使使用print\\r)

然后我发现了此功能:

$wp_styles->registered
在玩了一会儿之后,我发现:

foreach ($wp_styles->registered as $val) {
     echo "CSS: " . $val->handle . " at " . $val->src . " \\n";
}
所以,这是可行的。。。但是,这里是但是。。。它没有把所有的东西都放进去!

<?php
/*
Plugin Name: X Cleanup
Description: Removes unneeded and unwanted stylesheets from other plugins
Version: 0.1
*/

//Use a class to avoid conflicts
class my_load_reducer {
    function __construct() {
        //Hook into wp_enqueue_scripts with a high priority
        add_action( \'wp_loaded\', array($this, \'deregister_styles\'),99999);
    }
    function deregister_styles() {

        global $wp_scripts;
        global $wp_styles;

        foreach ($wp_scripts->registered as $val) {
            echo "JS: " . $val->handle . " at " . $val->src . " \\n";
        }

        foreach ($wp_styles->registered as $val) {
            echo "CSS: " . $val->handle . " at " . $val->src . " \\n";
        }

    }
}

//Instantiate the class
$my_load_reducer = new my_load_reducer();
据我所知wp_loaded 钩子应该是最后运行的一个(在它打印出来之前,以及在所有插件运行之后)

所以为什么它没有把所有的东西都放进去?我被难住了!

TIA公司

更新:根据建议,我尝试使用wp_enqueue_scripts 措施:

add_action( \'wp_enqueue_scripts\', array($this, \'deregister_styles\'),99999);
然后,我运行该页面,并将CSS文件的调试视为:

CSS: colors at 1 
CSS: wp-admin at /wp-admin/css/wp-admin.min.css 
CSS: login at /wp-admin/css/login.min.css 
CSS: install at /wp-admin/css/install.min.css 
CSS: wp-color-picker at /wp-admin/css/color-picker.min.css 
CSS: customize-controls at /wp-admin/css/customize-controls.min.css 
CSS: customize-widgets at /wp-admin/css/customize-widgets.min.css 
CSS: press-this at /wp-admin/css/press-this.min.css 
CSS: ie at /wp-admin/css/ie.min.css 
CSS: buttons at /wp-includes/css/buttons.min.css 
CSS: dashicons at /wp-includes/css/dashicons.min.css 
CSS: open-sans at //fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,300,400,600&subset=latin,latin-ext 
CSS: admin-bar at /wp-includes/css/admin-bar.min.css 
CSS: wp-auth-check at /wp-includes/css/wp-auth-check.min.css 
CSS: editor-buttons at /wp-includes/css/editor.min.css 
CSS: media-views at /wp-includes/css/media-views.min.css 
CSS: wp-pointer at /wp-includes/css/wp-pointer.min.css 
CSS: imgareaselect at /wp-includes/js/imgareaselect/imgareaselect.css 
CSS: wp-jquery-ui-dialog at /wp-includes/css/jquery-ui-dialog.min.css 
CSS: mediaelement at /wp-includes/js/mediaelement/mediaelementplayer.min.css 
CSS: wp-mediaelement at /wp-includes/js/mediaelement/wp-mediaelement.css 
CSS: thickbox at /wp-includes/js/thickbox/thickbox.css 
CSS: media at /wp-admin/css/deprecated-media.min.css 
CSS: farbtastic at /wp-admin/css/farbtastic.css 
CSS: jcrop at /wp-includes/js/jcrop/jquery.Jcrop.min.css 
CSS: colors-fresh at  
CSS: login-with-ajax at http://steampunk-reviews.com/wp-content/themes/valenti/plugins/login-with-ajax/widget.css 
CSS: grunion.css at http://steampunk-reviews.com/wp-content/plugins/jetpack/modules/contact-form/css/grunion.css 
CSS: genericons at http://steampunk-reviews.com/wp-content/plugins/jetpack/_inc/genericons/genericons/genericons.css 
CSS: jetpack-icons at http://steampunk-reviews.com/wp-content/plugins/jetpack/css/jetpack-icons.min.css 
CSS: omnisearch-admin at http://steampunk-reviews.com/wp-content/plugins/jetpack/modules/omnisearch/omnisearch.min.css 
CSS: jquery-ui at http://steampunk-reviews.com/wp-content/plugins/contact-form-builder/css/jquery-ui-1.10.3.custom.css 
CSS: contact_form_maker_frontend at http://steampunk-reviews.com/wp-content/plugins/contact-form-builder/css/contact_form_maker_frontend.css 
CSS: cb-main-stylesheet at http://steampunk-reviews.com/wp-content/themes/valenti/library/css/style.css 
CSS: cb-font-stylesheet at //fonts.googleapis.com/css?family=Oswald:400,700,400italic|Open+Sans:400,700,400italic&subset=greek,greek-ext 
CSS: fontawesome at http://steampunk-reviews.com/wp-content/themes/valenti/library/css/fontawesome/css/font-awesome.min.css 
CSS: cb-ie-only at http://steampunk-reviews.com/wp-content/themes/valenti/library/css/ie.css 
。。但仍然没有提到这一点:/

<link rel=\'stylesheet\' id=\'maxgalleria-image-tiles-css\'  href=\'http://steampunk-reviews.com/wp-content/plugins/maxgalleria/addons/templates/image-tiles/image-tiles.css?ver=4.2.2\' type=\'text/css\' media=\'all\' />
因此,似乎最终还是没有像我希望的那样:(

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

包含在其中的所有脚本和样式wp_enqueue_script()wp_enqueue_style() 在动作挂钩中显示wp_headwp_footer. 因此,将它们合并在一起的适当时机就在那里。很早就上钩,在那里施展你的魔法。

这个wp_enqueue_styles 钩子不一定是最好的,因为它并不总是注册样式的钩子。因此,在我看来,最好在输出时合并脚本/样式,而不是在输入时合并。

结束

相关推荐