Child-Theme nachträglich anwenden?

  • Ok, jetzt werde ich gar nicht mehr schlau aus der Sache.

    a) Ich kann im Child Theme die Parent Theme css nur mit !important überschreiben. Ansonsten wird es nicht erkannt.

    b) Ich habe den Fehler, dass unterschiedliche CSS nacheinander geladen werden, leider wieder. Und ich weiß aber nicht, woher er kommt, denn ich habe im Child-Theme keinen Override an. Trotzdem lädt eine Überschrift in Schriftgröße X und springt nach einer halben Sekunde um auf Schriftgröße Y, was natürlich total beknackt aussieht. Komischerweise passiert das aktuell nur bei Überschriften, die Farben stimmen noch, da blinkt es nicht wieder....

    c) Im Child waren sämtliche Anpassungen in den Sidebars/Widgets weg, im Parent Theme waren sie noch da.

    Bin für jede Hilfe dankbar. Hier nochmal der Text aus den Child Files:

    /*
    Theme Name: Engine Child
    Description: Child theme for engine
    Author: Ma
    Template: engine
    */

    <?php
    /**
    * Enqueues child theme stylesheet, loading first the parent theme stylesheet.
    */
    function engine_custom_enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-theme-css', get_template_directory_uri() . '/style.css' );
    }
    add_action( 'wp_enqueue_scripts', 'engine_custom_enqueue_child_theme_styles', 11 );

    Einmal editiert, zuletzt von Seph (21. März 2015 um 16:50)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Als erstes überträgst Du jetzt eventuelle Customs CSS Regeln aus dem Theme in die style.css des Childs.

    Zweitens änderst Du die Funktion engine_custom_enqueue_child_theme_styles() wie folgt:

    Code
    function engine_custom_enqueue_child_theme_styles() {
    	wp_enqueue_style( 'parent-theme-css', get_template_directory_uri() . '/style.css' );
    	wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-theme-css') );
    }

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ok, habe ich gemacht, danke. Aber es ist wohl so, dass das Child CSS das Parent CSS immer noch nur mit !important überschreibt...

    Das hier steht in meiner functions:

    <?php
    /**
    * Enqueues child theme stylesheet, loading first the parent theme stylesheet.
    */
    function engine_custom_enqueue_child_theme_styles() {
    wp_enqueue_style( 'parent-theme-css', get_template_directory_uri() . '/style.css' );
    wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-theme-css') );
    }
    add_action( 'wp_enqueue_scripts', 'engine_custom_enqueue_child_theme_styles', 11 );

  • Evtl sind deine css Formatierungen nicht genau genug.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ich kopiere 1:1 den Text aus dem Original-CSS rüber. Als Beispiel:

    #sticky-bar{width:100%;height:65px;position:absolute;top:100px;z-index:499;background:#595959}

    Wenn ich den background zu #fff ändere wird das nur mit !important angenommen. Ohne !important passiert nichts...

  • Hast Du auch die CSS Regeln aus der Custom CSS des Themes gelöscht?

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Als erstes überträgst Du jetzt eventuelle Customs CSS Regeln aus dem Theme in die style.css des Childs.

    Ok, habe ich gemacht, danke.

    Sorry, da stehe ich jetzt auf dem Schlauch. :( Was genau meinst Du damit?

    Entweder Du liest nicht richtig oder Du antwortest ungenau. Wenn Du bestätigst, dass Du die Regeln aus der Custom CSS das Themes übertragen hast, musst Du doch wissen was ich meine. Das hatten wir doch schon am Anfang mit Deine Änderungen im Theme. Also wenn das Theme eine Custom CSS Option hat, dann übertrage die Regeln in das Child Theme und entferne die Regeln aus der Custom CSS Area. Und ob Dein Theme eine solche hat musst Du wissen, es ist Dein Theme. Und wenn Du es nicht weißt schau nach.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Sorry, da habe ich wohl auf dem Schlauch gestanden.

    Ich dachte, du meintest mit "Custom CSS" alles an CSS, was ich selbst geschrieben habe. Also ja, mein CSS hat einen Custom CSS Bereich, dort habe ich aber nichts reingeschrieben. Ich habe Änderungen immer direkt in der CSS Datei des Parent Themes gemacht. Soll ich mal testen ob die Einträge im Custom CSS in den Child Theme Optionen ohne !important überschreiben?

  • Nein, die Custom CSS Option ist tabu. Sind die von Dir im Parent gemachten Einträge ins Child übertragen und aus dem Parent gelöscht? Falls nicht machst Du das jetzt bitte.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Nein, ich habe sie in der Tat nur kopiert und versucht zu überschreiben, d.h. ich hatte sie sowohl im Child als auch im Parent. Vielleicht war das ja der Fehler. Ich versuche sie mal systematisch in's Child zu schreiben und aus dem Parent zu löschen, kriege ich heute aber nicht mehr fertig. Melde mich sobald ich damit durch bin, danke!

  • Hm, ok, habe es mal testweise mit einer ID gemacht.

    #sticky-bar{width:100%;height:65px;position:absolute;top:100px;z-index:499;background:#595959}

    aus der Parent ausgeschnitten (und dann gespeichert) und in Child eingefügt.

    Dann geändert in:

    #sticky-bar{width:100%;height:65px;position:absolute;top:100px;z-index:499;background:#fff}

    und gespeichert. Nix.

    Mit !important getestet und es ging wieder. Komisch, da die Zeile an sich ja schon gar nicht mehr im Parent steht.

    EDIT:
    Der Fehler, dass CSS "nachlädt", also Schrift sich bspw. nach dem Aufbau der Seite nochmal erkennbar verändert, ist aktuell aber weg.

  • Gib uns doch mal einen Link zu deiner Seite, damit man sich das ansehen kann.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Dann wird es langsam schwierig dir noch weiter zu helfen, sorry.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Ok. Trotzdem danke. Vielleicht hat ja noch jemand eine Idee warum das child => parent override nicht funktioniert. Die parent scheint das child css ja nicht richtig zu ziehen. Wahrscheinlich ein php problem aber mit php kenne ich mich nicht aus.

  • Jetzt habe ich gerade herausgefunden, dass ich die Farbe der StickyBar ohne !important auch im Main CSS nicht ändern kann...also irgendwas hapert da noch. Ich habe aber Disqus installiert und da konnte ich über das childtheme css der disqus kommentarbox padding hinzufügen ohne Probleme...

  • Wie SirEctor schon gesagt hat, ist es ohne einen Link zur Seite nicht mehr möglich zu helfen.

    Es steht zu vermuten, dass die angesprochenen Regeln in anderen CSS Dateien definiert werden, die später geladen werden als die style.css. Oder aber eben Deine Aussage darüber, dass Du die Regeln ja 1:1 übernimmst wieder nicht stimmen kann, weil diese ja gar nicht existieren, wenn auch in der style.css des Parent keine Änderung möglich ist, also erst einmal eine Regel geschrieben werden muss.

    Dann könnte man ein zusätzliches Stylesheet als letztes in der Kaskade laden (z.B. Priorität 9999) um zu sehen wie sich eine Regeländerung dort auswirkt. Möglicherweise handelt es sich aber auch um Regeln die bereits mit !important vom Theme definiert sind und deshalb nur mit !important änderbar sind, wenn man sie vor den anderen Regeln lädt.

    Bei manchen Themes ist die 'neue' Vorgehensweise für Childs über wp_enqueue_scripts anstatt @import aber auch schwierig, weil diese mehrere CSS Dateien laden, was man dann natürlich berücksichtigen müsste.

    Aber all das ist Spekulation und kann nur durch einen Blick in den Quellcode der Seite beantwortet werden. Aus diesem Grund bin ich jetzt solange aus diesem Thread raus, bis man das 'Problem' online nachvollziehen kann.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Ich glaube ich habe den Fehler gefunden: Wenn man in den Theme Optionen bspw. eine Farbe definiert (d.h. kein CSS code im Cusotm CSS, sondern einfach nur in einer Auswahlbox) scheint das alles andere zu überschreiben. Ich habe jetzt alle Farben etc. "geleert", alle Schriftarten auf Null gestellt, keine Schriftgrößen eingestellt...und nun scheint es zu gehen, auch ohne !important...ich muss noch etwas weiter testen.

    Sorry, tut mir leid, mir war nicht klar, dass ALLE Theme-Einstellungen als Custom CSS durchgehen.

  • Sorry, tut mir leid, mir war nicht klar, dass ALLE Theme-Einstellungen als Custom CSS durchgehen.


    Irgendwie müssen diese Einstellungen ja auch umgesetzt werden. Ich vermute als Inline-Style ... und das nach sämtlichen CSS-Dateien.

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!