web-dev-qa-db-ja.com

プラグインのCSSを子テーマできれいにオーバーライドするにはどうすればいいですか?

私はWordPressの慣習に従うことを自分自身にとっていますので、私はきれいでセクシーな子供のテーマを持つことができます。しかし、私は特定の問題をどのように進めるべきかわからない。

私のWordPress WebサイトのいくつかのプラグインについてCSSを上書きしたいのですが、 この素晴らしい投稿 は正しい方向への大きな一歩でした。私の唯一の懸念は、私ができる限りのことをにすることで、私の親テーマのheader.phpファイルを上書きしないようにすることです。

これを行うための別の素晴らしい方法はありますか?ご協力いただきありがとうございます!

更新

他のユーザーのコメントで指摘されているように、これは実際にはプラグインがそのスタイルをどのように実装しているかに依存しています。これはさておき、プラグインが子テーマのstyle.cssシート、または私の場合はそのstyle.cssシートにリンクされた別のstylesフォルダにスタイルを実装する方法を提供すると仮定します。

私は!importantをあちこちで使うことができることも知っています、しかしこれは一般的に眉をひそめます。

7

プラグインがwp_enqueue_styleを介してそれらのスタイルを正しく追加している場合は、単にそれらをデキューする必要があります。

function wpa_dequeue_style() {
    wp_dequeue_style( 'plugin-style-handle' );
}
add_action( 'wp_enqueue_scripts', 'wpa_dequeue_style', 100 );

これが機能するかどうかは、プラグインがスタイルを追加する方法と場所によって異なるため、問題のプラグインが使用している特定の方法を知らなければ絶対的な答えはありません。

編集 - スタイルを完全に削除することを伴わない別のオプションは、依存関係としてプラグインスタイルを使ってあなた自身のスタイルをエンキューすることです:

wp_enqueue_style(
    'my-styles',
    get_template_directory_uri() . '/mystyles.css',
    array('plugin-style-handle')
);
14
Milo