Eigene CSS per functions.php in child-theme einbinden

  • Hallo!

    Ich suche mir grade 'nen Wolf (inklusive in diesem Forum) und komme leider auf keinen grünen Zweig bei meinem Vorhaben.

    Ich verwende Wordpress 4.0 und das Thema "Moesia", von dem ich ein Child-Theme erstellt und aktiviert habe. Die style.css befindet sich im Ordner des child-themes und die dort gemachten Änderungen wirken sich auch wie gewünscht aus.

    Jetzt ist es aber so, das ich auch die bootstrap.min.css anpassen muß. Dazu habe ich sie in den Unterordner /css/bootstrap/bootstrap.min.css des child-themes kopiert und die Änderungen dort durchgeführt. Mit der Erkenntnis, das die css Datei von diesem Ort nicht geladen wird.

    Ich habe mir dann ergoogelt, das man im child-theme eine leere functions.php erstellen und eigene Funktionen bzw. stylesheets dort laden kann. Leider blieben meine Versuche, die bootstrap.min.css aus dem child-theme einzubinden, bisher erfolglos.

    Mein Code schaut so aus:

    PHP
    <?php
    function meine_scripts() {
        wp_enqueue_style( 'mein-style-bootstrap', get_template_directory_uri().'/css/bootstrap/bootstrap.min.css','' );
    }
    add_action( 'wp_enqueue_scripts', 'meine_scripts' );

    Für hilfreiche Tips bedanke ich mich im Voraus recht herzlich!

    LG,

    Werner.

    Einmal editiert, zuletzt von Feichtl (13. November 2014 um 16:35)

    • 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

  • Ich versteh nicht, warum du eine 2. CSS brauchst, schreib doch alles in die style.css des Childs.

    [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]

  • Darauf wird's wohl letztlich hinauslaufen. Trotzdem würde ich gerne verstehen, warum ich an der functions.php scheitere bzw. warum das so nicht gehen sollte.

  • Weil get_template_directory_uri() nicht für ein Child-Theme ist: http://codex.wordpress.org/Function_Refer…e_directory_uri

    [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]

  • Heute habe ich mich dem Thema wieder gewidmet, da das Original-Theme aktualisiert wurde und dabei auch ein paar Änderungen in der style.css vorgenommen wurden.

    Um mich nur um meine Änderungen kümmern zu müssen und die Übersicht darüber zu behalten habe ich beschlossen, dem Codex entsprechend die Original style.css in mein Child-theme einzubinden. Dazu habe ich im Child eine functions.php mit folgendem Inhalt erstellt:

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

    Wenn ich jetzt mal meine Änderungen in der style.css aussen vor- und die style.css leer lasse, dann ist auch die Webseite unformatiert, da die Original style.css NICHT geladen wird! Verwende ich @import in der style.css des Child-Themes, dann wird diese importiert und die Seite korrekt angezeigt.

    Es scheint also, als würden die Anweisungen in der functions.php meines Child-Themes ignoriert bzw. nicht wunschgemäß ausgeführt. Wenn ich allerdings "blödsinn" in die functions.php reinschreibe werden entsprechende Fehler auf der Webseite angezeigt. Also gehe ich davon aus, das sie zumindest abgearbeitet wird, nur ich irgendwo einen Fehler drinnen habe, den ich leider nicht entdecke.

    Der Vollständigkeit halber hier die wichtigsten Infos zur Umgebung:

    Wordpress: 4.0.1
    Parent-Theme: Moesia 1.16
    PHP: 5.3.27
    MYSQL: 5.5.40-0

    Ich hoffe, damit ausreichend Informationen geliefert zu haben und würde mich über weiterführende Infos freuen.

    LG,

    Werner.

  • Sorry Folks, ich bin einem Irrtum aufgesessen. Die style.css wird mit obiger Anweisung doch korrekt geladen. Ich habe mich durch Nebenerscheinungen, die ich noch beheben muß, irritieren lassen.

    Jetzt erscheint in der Navigationsleiste (am PC) der Menu-Toggle Button, der eigentlich nur auf mobilen Endgeräten erscheinen soll und zerstört das Layout der Leiste. Sollte jemand einen Tip haben, wie ich den wegbekomme, wäre ich sehr dankbar.

    LG,

    Werner.

  • Also ehrlich gesagt verstehe ich jetzt einiges nicht. Vielleicht kann mich ja jemand aufklären.

    Wenn ich die style.css des Parent-Themes lade, dann soll ich ja in der style.css des Child-Themes nur die gewünschten Änderungen eintragen.

    Mein Problem mit dem Menu-Toggle Buttonkonnte ich lösen, indem ich die zugehörigen Formatierungen aus der Parent-style.css in die Child-style.css kopiert habe. Das sollte für mein Verständnis allerdings gar nicht nötig sein.

    Oder ich hab's ganz einfach nicht verstanden ...

  • Oder ich hab's ganz einfach nicht verstanden ...

    So ist es. Du lädst im Child alle CSS Definitionen des Parent und damit sind diese gültig. Sollen diese überschrieben werden musst Du in der styles.css des Child entsprechend neue Definitionen ablegen.

    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 denke, das habe ich genau so verstanden. Allerdings ist mir nicht klar, warum ich - wie oben beschrieben - einen ganzen Abschnitt aus der Parent-style.css in die Child-style.css kopieren musste, damit der Buton funktioniert, wie er soll. Obwohl ich ja die Parent-style.css in der functions.php "lade". Per @import hat's prima funktioniert, aber im Sinne des Codex wollte ich's halt "richtig" machen.

    Ich möchte noch erwähnen, das ich mich gute 10 Jahre mit einem anderen CMS (Xoops) befasst habe und WP - intensiver - erst seit ca. einem halben Jahr einsetze. Und zwischen den beiden Systemen sind echt Welten.

    Einmal editiert, zuletzt von Feichtl (28. November 2014 um 14:47)

  • Weil das allmählich unübersichtlich wird, noch einmal in Kurzform:

    1. Deine functions.php des Childs enqueued das Parent CSS
    2. Änderungen gehen in die style.css Deines Childs

    Das funktioniert in 95% aller Fälle.

    Manchmal gibt es Ausnahmen und das könnte bei Dir der Falls sein (weil @import das Problem nicht hat)

    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.

Jetzt mitmachen!

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