【WordPress】親テーマのスタイルをインライン化する方法

親テーマのスタイルをインライン化して、余計な外部CSSファイルを読み込まないようにしてみる。

add_action( 'wp_enqueue_scripts', 'denqueue_my_scripts', 11 );
function denqueue_my_scripts() {
    $remove_styles = array( '【styleのファイル名(-cssより前で複数書ける)】');

    if(!is_super_admin()){
        $remove_styles = array_merge($remove_styles, array( 【styleのファイル名(管理用)】 ));
    }

    foreach( $remove_styles as $target ) {
        if( wp_style_is($target) ) {
            wp_dequeue_style($target);
        }
    }
}

add_action( 'wp_enqueue_scripts', 'output_inline_style' );
function output_inline_style() {
    // CSSスタイルファイルをキューに追加
    wp_register_style( 'style-origin', false );
    wp_enqueue_style( 'style-origin' );
    // style.cssファイルを読み込み
    $css = file_get_contents( get_stylesheet_uri(), true );
    // インラインにCSSの内容を出力
    wp_add_inline_style( 'style-origin', $css );
}

ヘッダーになく、フッターで読み込んでいるCSSファイルは別で消さないといけないようだ。

add_action('get_footer','denqueue_my_footer_styles');
function denqueue_my_footer_styles(){
    $remove_styles = array( '【styleのファイル名(管理用)】' );
    foreach( $remove_styles as $target ) {
        if( wp_style_is($target) ) {
            wp_dequeue_style($target);
        }
    }
}

参考サイト