Acordă prioritate foii de stil pentru tema copil

23 feb. 2016, 18:13:50
Vizualizări: 38.1K
Voturi: 6

Am creat o temă copil și fișierul principal style.css funcționează perfect. Cu toate acestea, tema părinte are o altă foaie de stil pe care vreau să o import și să creez aceeași versiune pentru tema copil și să o folosesc în locul celei din părinte.

Structura temei părinte - ./woocommerce/woo.css
Structura temei copil - ./woocommerce/woo.css (Creată manual)

Acum, am încărcat ambele foi de stil în functions.php al temei copil după cum urmează.

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

Acum, dacă adaug un stil în fișierul woo.css al temei copil, acesta nu funcționează decât dacă folosesc !important. Nu vreau să fiu nevoit să fac asta pentru fiecare stil pe care îl adaug.

este

1
Comentarii

Te rog să arunci o privire la acest comentariu

Mayeenul Islam Mayeenul Islam
23 feb. 2016 18:40:45
Toate răspunsurile la întrebare 3
3

Poți încerca să adaugi o valoare de prioritate pentru fiecare add_action pentru a te asigura că unul se execută înaintea celuilalt.

add_action( 'wp_enqueue_scripts', 'fruitful_load_parent_stylesheets', 10 );
add_action('wp_enqueue_scripts', 'fruitful_load_child_stylesheets', 20 );

WordPress Codex add_action()

23 feb. 2016 19:20:47
Comentarii

Nu a funcționat. Iată link-ul către captura de ecran a inspect element - http://i.imgur.com/Mb34NJa.png

Al treilea bloc este din woo.css al temei child, în timp ce primele două sunt din tema părinte. Nu știu de ce sunt încărcate de două ori.

nimsrules nimsrules
23 feb. 2016 19:53:31

Setarea priorității a funcționat pentru mine. A trebuit să o setez mai mare decât 10 pentru a "depăși" încărcarea din tema părinte.

Gavin Gavin
22 mar. 2018 17:07:20

și pentru mine - acum pot suprascrie setările din tema părinte (șablon cumpărat)

cljk cljk
25 mar. 2020 12:49:20
1

Fișierul stylesheet al temei copil va fi încărcat de obicei automat. Dacă nu se întâmplă acest lucru, va trebui să îl încărcați manual folosind funcția enqueue. Specificând 'parent-style' ca dependență, vă asigurați că fișierul stylesheet al temei copil se încarcă după cel al părintelui.

/**
 * Încarcă stilurile temei (mai întâi părintele, apoi copilul)
 * 
 */
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' );

Notă: consultați Manualul Dezvoltatorului de Teme pentru informații suplimentare.

23 feb. 2016 20:23:53
Comentarii

A funcționat după ce am comentat încărcarea fișierului woo.css în functions.php al temei părinte. Voi accepta acest răspuns. Mulțumesc!

nimsrules nimsrules
23 feb. 2016 20:32:35
0

Am reușit să încărc tema copil mai târziu, ca mai jos. A trebuit să elimin și să deregistrez stilul părinte, apoi să încarc stilul părinte și stilul copil. Sper că vă ajută.

Fișierul părinte functions.php conține:

add_action('wp_enqueue_scripts', 'load_parent_style', 10);
function load_parent_style() {
    wp_enqueue_style('parent-theme-style'); // codul temei părinte
}

Fișierul copil functions.php conține:

add_action('wp_enqueue_scripts', 'load_child_style', 20);
function load_child_style() {
  // înregistrez și încarc stilul părinte cu un nou nume 
  wp_register_style('parent-style', $url, array($deps));
  wp_enqueue_style('parent-style'); 

  // elimin și deregistrez stilul temei părinte
  wp_dequeue_style('parent-theme-style'); // din tema părinte
  wp_deregister_style('parent-theme-style'); 

  // înregistrez și încarc stilul copil
  wp_register_style('child-style', get_stylesheet_uri(), array('parent-style'));
  wp_enqueue_style('child-style');
}
17 mar. 2018 17:08:07