J'ai créé un thème pour enfants et le principal style.css fonctionne parfaitement bien. Cependant, le thème parent a une autre feuille de style que je veux importer et créer de la même manière pour le thème enfant et l'utiliser à la place.
Structure du thème parent - ./woocommerce/woo.css
Structure du thème de l'enfant - ./woocommerce/woo.css (créé manuellement)
Maintenant, j'ai mis en file d'attente les deux feuilles de style dans le fichier function.php du thème enfant comme ci-dessous.
function fruitful_load_parent_stylesheets() {
wp_enqueue_style( 'layout', get_template_directory_uri() . '/woocommerce/woo.css' );
}
add_action( 'wp_enqueue_scripts', 'fruitful_load_parent_stylesheets' );
function fruitful_load_child_stylesheets(){
wp_enqueue_style( 'woo', get_stylesheet_directory_uri() . '/woocommerce/woo.css');
}
add_action('wp_enqueue_scripts', 'fruitful_load_child_stylesheets');
Maintenant, si j'ajoute un style au woo.css du thème enfant, il ne fonctionnera pas avant que je! Important it.Je ne veux simplement pas le faire pour tous les styles que j'ajoute.
est
stylesheet
de votre thème enfant sera généralement chargé automatiquement. Si ce n'est pas le cas, vous aurez également besoin de enqueue
. Si vous définissez 'parent-style' comme dépendance, le thème enfant stylesheet
sera chargé après celui-ci.
/**
* Enqueue theme styles (parent first, child second)
*
*/
function wpse218610_theme_styles() {
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/woocommerce/woo.css' );
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/woocommerce/woo.css', array( $parent_style ) );
}
add_action( 'wp_enqueue_scripts', 'wpse218610_theme_styles' );
Remarque: consultez le manuel Thème Developer Developer pour plus d’informations.
Vous pourriez peut-être essayer d’ajouter une valeur de priorité à chaque add_action pour vous assurer que l’une s’exécute avant l’autre.
add_action( 'wp_enqueue_scripts', 'fruitful_load_parent_stylesheets', 10 );
add_action('wp_enqueue_scripts', 'fruitful_load_child_stylesheets', 20 );
Je dois charger le thème enfant plus tard, comme ci-dessous. J'ai dû retirer de la file d'attente et désenregistrer le style parent, puis mettre en file d'attente le style parent et le style enfant. J'espère que cela t'aides
Le parent functions.php
a
add_action('wp_enqueue_scripts', 'load_parent_style', 10);
function load_parent_style() {
wp_enqueue_style('parent-theme-style'); // parent theme code
}
L'enfant functions.php
a
add_action('wp_enqueue_scripts', 'load_child_style', 20);
function load_child_style() {
//register & enqueue parent with new name
wp_register_style('parent-style', $url, array($deps));
wp_enqueue_style('parent-style');
// dequeue & deregister parent's theme handle
wp_dequeue_style('parent-theme-style'); // from parent theme
wp_deregister_style('parent-theme-style');
// register & enqueue child style
wp_register_style('child-style', get_stylesheet_uri(), array('parent-style'));
wp_enqueue_style('child-style');
}