web-dev-qa-db-fra.com

Woocommerce inclut une feuille de style personnalisée après le style woocommerce

Après la mise à niveau vers WC 2.1.2, mon style semble avoir été annulé par le style standard de WC. Existe-t-il un moyen de remplacer le style de WC standard sans recourir à des solutions telles que l'utilisation de !important ou d'autres méthodes hackish?

Peut-être qu'en le mettant en file d'attente d'une certaine manière dans functions.php?

Beaucoup de gens recommandent de désactiver les styles de WC et de copier tous les styles dans vos propres styles de thème. Mais n'est-ce pas mauvais si Woocommerce ajoute des fonctionnalités?

1
Spindle

wp_enqueue_style prend en charge les dépendances. Ainsi, si vous faites du style WooCommerce une dépendance pour votre nouvelle feuille de style, celle-ci sera toujours chargée après la feuille de style WooCommerce.

Quelque chose comme cela devrait fonctionner, mais il n'a pas été testé:

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' );

EDIT: Il s'avère que vous n'avez pas besoin d'utiliser de dépendances. Vous avez juste besoin de mettre en file d'attente vos styles après que WooCommerce a mis la leur en file d'attente .... en utilisant une priorité ultérieure.

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