Tema copil nu încarcă CSS-ul părinte

7 sept. 2015, 01:26:25
Vizualizări: 14.7K
Voturi: 3

Folosesc tema MyStile pentru un site nou. Încerc să creez o temă copil pentru a putea modifica tema fără ca modificările mele să fie suprascrise, dar odată ce activez tema copil, întregul design al site-ului dispare.
Presupun că problema se află undeva în modul în care se încarcă fișierul style.css al temei părinte.

Iată ce am în fișierul style.css al temei copil:

   /*
 Nume Tema:   Blurred Edge Apparel
 URL Tema:    http://www.blurrededgeapparel.com
 Descriere:   Tema Copil MyStile
 Autor:       Blurred Edge Apparel
 URL Autor:   http://www.blurrededgeapparel.com
 Template:    mystile
 Versiune:    1.0.0
*/


@import url("../mystile/style.css");

Am copiat de asemenea fișierele header.php și footer.php din directorul temei părinte, dar încă nu funcționează.
Omiteam ceva aici?

0
Toate răspunsurile la întrebare 3
1
11

Aruncă o privire la Cum să creezi un Child Theme și vei vedea că:

metoda anterioară de a încărca fișierul de stiluri al părintelui era să importi fișierul de stiluri al temei părinte folosind @import: aceasta nu mai este cea mai bună practică. Metoda corectă de a încărca fișierul de stiluri al temei părinte este să adaugi o acțiune wp_enqueue_scripts și să folosești wp_enqueue_style() în fișierul functions.php al temei copil.

Iată exemplul furnizat:

add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
}
7 sept. 2015 02:02:47
Comentarii

Mulțumesc pentru răspuns, dar încă nu funcționează

Toby Cannon Toby Cannon
7 sept. 2015 09:29:22
0

Tema Mystile este o temă veche de 3 ani care nu este gata de utilizare ca stil părinte deoarece stilul copil este fixat în header.php într-o locație nepotrivită

Cea mai rapidă metodă de a corecta această problemă este să plasați aceste fișiere în directorul temei-copil:

  • fișierul style.css:

.

/*
Template: mystile
*/
  • fișierul child-style.css: toate regulile CSS pe care doriți să le aplicați
  • fișierul functions.php:

.

<?php
add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
function theme_enqueue_styles() {
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );

    wp_enqueue_style( 'child-style'
        , get_stylesheet_directory_uri() . '/child-style.css'
        , array('parent-style') // declară dependența
                                // pentru a încărca stilul-copil după stilul-părinte
    );
}
7 sept. 2015 11:59:27
0

https://developer.wordpress.org/themes/advanced-topics/child-themes/

Metoda recomandată de a încărca fișierele de stil este să adăugați o acțiune wp_enqueue_scripts și să folosiți wp_enqueue_style() în fișierul functions.php al temei copil. Dacă nu aveți unul, creați un fișier functions.php în directorul temei copil. Prima linie din functions.php al temei copil va fi o deschidere de tag PHP (<?php), după care puteți scrie codul PHP în funcție de ceea ce face tema părinte.

Dacă tema părinte încarcă ambele fișiere de stil, tema copil nu trebuie să facă nimic.

Dacă tema părinte încarcă stilul folosind o funcție care începe cu get_template, cum ar fi get_template_directory() și get_template_directory_uri(), tema copil trebuie să încarce doar stilurile copil, folosind handle-ul părintelui în parametrul de dependență.

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    wp_enqueue_style( 'child-style', get_stylesheet_uri(),
        array( 'parenthandle' ), 
        wp_get_theme()->get('Version') // acest lucru funcționează doar dacă aveți Version în antetul stilului
    );
}

Dacă tema părinte încarcă stilul folosind o funcție care începe cu get_stylesheet, cum ar fi get_stylesheet_directory() și get_stylesheet_directory_uri(), tema copil trebuie să încarce atât fișierele de stil ale părintelui, cât și ale copilului. Asigurați-vă că folosiți același nume de handle ca și tema părinte pentru stilurile părinte.

add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
function my_theme_enqueue_styles() {
    $parenthandle = 'parent-style'; // Acesta este 'twentyfifteen-style' pentru tema Twenty Fifteen.
    $theme = wp_get_theme();
    wp_enqueue_style( $parenthandle, get_template_directory_uri() . '/style.css', 
        array(),  // dacă codul temei părinte are o dependență, copiați-o aici
        $theme->parent()->get('Version')
    );
    wp_enqueue_style( 'child-style', get_stylesheet_uri(),
        array( $parenthandle ),
        $theme->get('Version') // acest lucru funcționează doar dacă aveți Version în antetul stilului
    );
}

Consultați textul citat pe care l-am pus în bold mai sus. Acum verificați cum tema părinte încarcă stilul său și urmați instrucțiunile și exemplul în consecință. Cazul meu a fost al doilea, așa că am codat astfel:

add_action( 'wp_enqueue_scripts', 'twentytwentychild_enqueue_styles' );
function twentytwentychild_enqueue_styles() {
    $parentHandle = "twentytwenty-style";
    $childHandle = "twentytwentychild-style";
    $theme = wp_get_theme();

    wp_enqueue_style($parentHandle, get_template_directory_uri() . '/style.css',
        array(), // dacă codul temei părinte are o dependență, copiați-o aici
        $theme->parent()->get('Version') // acest lucru funcționează doar dacă aveți Version în antetul stilului
    );

    wp_enqueue_style($childHandle, get_stylesheet_uri(),
        array($parentHandle),
        $theme->get('Version') // acest lucru funcționează doar dacă aveți Version în antetul stilului
    );
}
18 dec. 2020 06:42:58