web-dev-qa-db-ja.com

テーマCSSをプラグインのCSSでオーバーライドする

私はテーマでプラグインのCSSを上書きすることに関して複数の質問を見ました( 例1例2 など)、しかし私は反対を探しています。

私はいくつかのカスタムCSSに付属の求人掲示板プラグインをインストールしましたが、私のテーマはそのプラグインのCSSをオーバーライドしています。それは取引を妨げるものではありませんが、私のテーマがCSSで行っていることが好きではありません。もちろん私が欲しいCSSをつかんでそれを私の子供のテーマのスタイルシートに入れることもできますが、もっとエレガントでシンプルな解決策があると思います。

Elegant ThemesのDiviテーマのプラグインWP Job Managerを使用しています。このプラグインは問題なく全体的にうまく動作しますが、デフォルトのテーマ(つまり、Twenty-12)で使用される場合はフォームフィールドの外観を好みます。

どんなアドバイスでも大歓迎です。

2
ahurleb

プラグインスタイルシートをデキューしてから、そのテーマスタイルシートを依存関係として追加したスタイルシートを再エンキューして、プラグインスタイルシートがテーマスタイルシートの後にロードされるようにすることができます。

function custom_style_order() {

    if ( defined('JOB_MANAGER_PLUGIN_URL') ) {

        //dequeue the original plugin stylesheet by its handle
        wp_dequeue_style( 'wp-job-manager-frontend' ); 

        //re-enqueue the stylesheet but with an added dependency (your theme stylesheet)
        wp_enqueue_style( 
            'wp-job-manager-frontend', 
            JOB_MANAGER_PLUGIN_URL . '/assets/css/frontend.css', 
            array('your-theme-stylesheet-handle') 
        );

    }

}

add_action('wp_enqueue_scripts', 'custom_style_order', 100); 

注: Twenty Twelve のようなデフォルトテーマを扱う場合の例として、テーマスタイルシートの「ハンドル」を見つける必要があります。その場合、そのテーマのメインスタイルシートのハンドルは、そのtwentytwelve-styleファイルでfunctions.phpです。 150行目。

3
userabuser