web-dev-qa-db-fra.com

Donner la priorité à la feuille de style du thème enfant

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

1
Nimsrules

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.

2
Charles

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

WordPress Codex add_action ()

4
goalsquid

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');
}
1
Vemman