1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Child-Theme nachträglich anwenden?

Dieses Thema im Forum "Installation" wurde erstellt von Seph, 20. März 2015.

  1. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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 );
     
    #21 Seph, 21. März 2015
    Zuletzt bearbeitet: 21. März 2015
  2. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  3. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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 );
     
  4. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    Evtl sind deine css Formatierungen nicht genau genug.
     
  5. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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...
     
  6. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Hast Du auch die CSS Regeln aus der Custom CSS des Themes gelöscht?
     
  7. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    Sorry, da stehe ich jetzt auf dem Schlauch. :( Was genau meinst Du damit?
     
  8. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    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.
     
  9. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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?
     
  10. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    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.
     
  11. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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!
     
  12. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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.
     
  13. SirEctor

    SirEctor Well-Known Member
    Ehrenmitglied

    Registriert seit:
    28. Oktober 2008
    Beiträge:
    12.361
    Zustimmungen:
    427
    Gib uns doch mal einen Link zu deiner Seite, damit man sich das ansehen kann.
     
  14. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    Würde ich, aber sie ist noch nicht online..... :/
     
  15. SirEctor

    SirEctor Well-Known Member
    Ehrenmitglied

    Registriert seit:
    28. Oktober 2008
    Beiträge:
    12.361
    Zustimmungen:
    427
    Dann wird es langsam schwierig dir noch weiter zu helfen, sorry.
     
  16. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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.
     
  17. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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...
     
  18. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    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.
     
  19. Seph

    Seph Well-Known Member

    Registriert seit:
    16. Juli 2010
    Beiträge:
    222
    Zustimmungen:
    0
    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.
     
  20. SirEctor

    SirEctor Well-Known Member
    Ehrenmitglied

    Registriert seit:
    28. Oktober 2008
    Beiträge:
    12.361
    Zustimmungen:
    427
    Irgendwie müssen diese Einstellungen ja auch umgesetzt werden. Ich vermute als Inline-Style ... und das nach sämtlichen CSS-Dateien.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden