web-dev-qa-db-ja.com

Woocommerceには、Woocommerceのスタイル設定後にカスタムスタイルシートが含まれる

WC 2.1.2にアップグレードした後、私のスタイルは標準的なWCスタイルによって却下されているようです。 !importantや他のハックな方法を使用するなどの解決策を使用せずに標準のWCスタイルを無効にする方法はありますか?

たぶんfunctions.phpにある方法でそれをエンキューすることによって?

多くの人が、WCスタイルを無効にして、すべてのスタイルを自分のテーマスタイルにコピーすることをお勧めします。しかし、Woocommerceが機能を追加するのであれば、これは悪いことではないでしょうか。

1
Spindle

wp_enqueue_style は依存関係をサポートします。したがって、WooCommerceスタイルを新しいスタイルシートの依存関係にすると、スタイルシートは常にWooCommerceスタイルシートの後に読み込まれます。

このようなものは動作するはずですが、テストされていません。

function enqueue_style_after_wc(){
    $deps = class_exists( 'WooCommerce' ) ? array( 'woocommerce-layout', 'woocommerce-smallscreen', 'woocommerce-general' ) : array();
    wp_enqueue_style( 'my-style', 'my-style.css', $deps, '1.0' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_style_after_wc' );

編集:それはあなたが依存関係を使用する必要はないことが判明しました。 WooCommerceが自分のスタイルをエンキューした後に、後で優先順位を使用して、スタイルをエンキューするだけです。

function enqueue_style_after_wc(){
        wp_enqueue_style( 'my-style', 'my-style.css', array(), '2.0' );
}
add_action( 'wp_enqueue_scripts', 'enqueue_style_after_wc', 20 );
4
helgatheviking