Jak správně nastavit import CSS v child?

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Jak správně nastavit import CSS v child?

Zvolené téma obsahuje celkem 3 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  admin a poslední změna je stará 8 let, 9 měsíců.

Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (z celkem 4)
  • Autor
    Příspěvky
  • #24738

    gore.m
    Participant

    Zdravím,
    potřeboval bych pomoct s CSS u child theme.

    Zkoušel jsem různé kódy pro import css ve functions.php, ale nikdy to nefunguje správně.

    Nyní mám nakonfigurováno takhle:

    add_action( 'wp_enqueue_scripts', 'my_enqueue_styles' );
    
    function my_enqueue_styles() {
    
        /* If using a child theme, auto-load the parent theme style. */
        if ( is_child_theme() ) {
            wp_enqueue_style( 'parent-style', trailingslashit( get_template_directory_uri() ) . 'style.css' );
        }
    
        /* Always load active theme's style.css. */
        wp_enqueue_style( 'style', get_stylesheet_uri() );
    }

    Když se ale podívám inspektorem na mnou vytvořené css jsou “natažené” dvakrát (jednou přeškrtnuté) viz. obrázek.

    Zkoušel jsem i tenhle kód:

    add_action( 'wp_enqueue_scripts', 'theme_enqueue_styles' );
    function theme_enqueue_styles() {
    wp_enqueue_style( 'style', get_template_directory_uri() . '/style.css' );
    }

    V tomto případě, se css natahuje jen jednou, ale je nutné u všech stejných elementů s originalním css používat !important.

    Jde to nějak elegantně vyřešit?
    Díky

    #24741

    admin
    Keymaster
    Web

    Možnosti načítání jsou popsány v místním postarším (ale stále platném) článku. Takže druhá varianta je určitě v pořádku a když pak do souboru style.css v odvozené šabloně přidáte nějakou jinou definici stejného elementu, tak bude mít přednost (vyzkoušeno u Twenty Fifteen) a !important není vůbec potřeba. Zkuste schválně Twenty Fifteen, vytvořit odvozenou šablonu, aktivovat a do style.css přidat:

    .site-branding {
        padding-left: 10px;
    }

    Když načtete web, tak bude název webu posunut, i když původní šablona Twenty Fifteen má padding nulový.

    Nevím, odkud máte tu první variantu, ale podle mě je tam zcela zbytečná tato část, která má načítat soubor style.css odvozené šablony:

    /* Always load active theme's style.css. */
        wp_enqueue_style( 'style', get_stylesheet_uri() );

    V tomto případě je to podle mě zbytečné, protože pokud je odvozená šablona aktivní, tak je tento soubor načítán automaticky (u každé šablony) a pokud ho načítáte ještě jednou ručně, tak ho vlastně načítáte podruhé…

    #24742

    gore.m
    Participant

    Jj přesně tak to je jen, nechápu kde je chyba a proč je můj CSS “podřazený” a musím poživat !important… (používám Genesis)

    #24748

    admin
    Keymaster
    Web

    Myslíte Genesis Framework? Tam by mohl být problém, nemají nějaký specifický způsob tvorby odvozených šablon? Je to vcelku složitý framework, který to možná řeší trochu jinak. Zkuste to u Twenty Fifteen a pokud to tam funguje, tak budete muset hledat v manuálech frameworku nebo jim napsat na podporu. Ale myslím, že budou mít určitě nějaký návod na tvorbu odvozené šablony…

Aktuálně jsou na stránce zobrazeny 4 příspěvky - 1. až 4. (z celkem 4)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.