• Gelöst c3pu2011

    (@c3pu2011)


    Hallo zusammen,
    ich verwende generatepress (kostenlose Version) und würde gerne ein Child-Theme anlegen. In einem Tuturial habe ich mich durchgewühlt bis an den Punkt, an dem functions.php für das Child-Theme zu erstellen ist. Im Tutorial wird folgender Code vorgeschlagen:

    <?php
     
    function mein_theme_styles() {
     
      wp_enqueue_style( 'mein-theme-parent-style', get_template_directory_uri() . '/style.css' );
      wp_enqueue_style( 'mein-theme-child-style', get_stylesheet_directory_uri() . '/style.css', array( 'mein-theme-parent-style' ) );
       
    }
     
    add_action( 'wp_enqueue_scripts', 'mein_theme_styles' );
     
    ?>

    Jetzt stellt sich mir die (vielleicht blöde) Frage, ob ich diese Code-Zeilen wirklich einfach so, wie sie sind in meine functions.php im Child-Theme kopieren soll, oder ob ich da nicht Begriffe ersetzen muss, also z.B. wenn da steht ‚mein-theme-parent-style‘ dass ich das durch irgendwas mit ‚generatepress-theme-parent-style’oder so ersetzen muss…

    Ich hoffe, ich nerv nicht zu sehr mit solchen offensichtlichen Ahnungslos-Fragen. Auf jeden Fall mal danke für Eure Tipps.
    c3pu2011

    • Dieses Thema wurde vor 4 Jahren, 2 Monaten von Hans-Gerd Gerhards geändert. Grund: Formatierung als Code korrigiert

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Hallo,
    ich nutze GeneratePress auch sehr gerne bei vielen Projekten.

    Ich hoffe, ich nerv nicht zu sehr mit solchen offensichtlichen Ahnungslos-Fragen.

    Nein, kein Problem, aber vermutlich ist das hier dann einfacher für dich:
    Auf der folgenden Seite von GeneratePress findest du eine schöne Anleitung mit einem vorbereiteten Child-Theme, das du runterladen kannst.

    Alternativ kannst du auch mit einem Plugin ein Child-Theme zu jedem Theme erstellen. Wie das funktioniert, habe ich in dem folgenden Beitrag beschrieben.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Alles korrekt, ergänzend noch ein paar besserwisserische Kommentare:

    Es mag kleinkariert erscheinen, aber Fehler wie ein falscher Dateiname function.php sind nicht selten ein Anlass für stundenlange Fehlersuche. Deshalb gleich einprägen: das Template heißt functions.php (mit Plural-„s“, wie du es dann auch in deiner Frage richtig geschrieben hast – nur eben im Titel nicht).

    Die Erstellung von Child-Themes ist im Web bestens dokumentiert, natürlich auch in der Dokumentation von WordPress: Child Themes

    Die PHP-Regeln in der functions.php sorgen dafür, dass das Stylesheet des Parent Theme übernommen wird und gleichzeitig ein eigenes Stylesheet mit ergänzenden/abweichenden CSS-Regeln eingebunden wird. Die dafür verwendete (und übrigens auch bestens dokumentierte) Funktion

    wp_enqueue_style( 
      string $handle, // Bezeichnung des eingebundenen Stylesheet
      string $src = '', 
      string[] $deps = array(), 
      string|bool|null $ver = false, 
      string $media = 'all' 
    )

    enthält als erstes Argument einen Handle, also einfach einen individuellen Bezeichner, den du z.B. dafür verwenden kannst, das Stylesheet unter bestimmten Dingen wieder rauszuwerfen. Ob der Bezeichner mein-theme-child-style, etwas sinnvoller generatepress-child oder ganz originell dem-child-theme-sein-style heißt, bleibt einzig deiner Phantasie überlassen.

    Mein erster (ganz furchtbar schief gelaufener) Vortrag bei einem WordCamp handelte davon, dass man sich in den meisten Fällen ein Child-Theme sparen kann. Einerseits kannst du viel per CSS ändern, das du über ein Plugin einfügen, mit einem Code Snippet (mit Code Snippets) einbinden oder sogar im Customizer eintragen kannst. Andererseits bieten dir WordPress-Core und viele Themes Hooks an, Schnittstellen mit denen du bei Bedarf weitere Inhalte einbinden kannst. Wenn du wie bei GeneratePress im Footer-Template eine Funktion do_action( 'generate_footer' ); findest und gerne im Footer eigenen Inhalt unterbringen möchtest, reicht ein add_action( 'generate_footer', 'meine_footer_funktion' );, mit dem du dann eine eigene PHP-Funktion einbindest. Das ist auf jedenfall „weniger invasiv“ und damit auch wartungsärmer, als ein Child-Theme.
    Das Problem bei Child Themes ist, dass du wahrscheinlich an einem Stichtag ein Template des Parent Theme in dein Child-Theme kopierst und dort Änderungen vornimmst, dann aber nicht weiter verfolgst, ob der Theme-Entwickler im Parent Theme an genau diesem Template eine Änderung vornimmt oder sogar eine Sicherheitslücke schließt (während du weiter das alte Template als Basis deines Child-Themes verwendest). Das Thema wurde bereits 2015 auf dem WordCamp Köln von Torsten Landsiedel vorgetragen und fand erstaunlich wenig Berücksichtigung.
    Kurz: wenn es irgendwie geht, vermeide Child-Themes.

    Und überhaupt … Mit Einführung der neuen Block-Themes scheinen Child-Themes auch aus der Mode zu kommen. Auch wenn das neue Feature „Full Site Editing“ noch etwas instabil ist und hier und da Nachbesserungen nötig sein werden, ist der Trend wohl, dass du in WordPress – ganz ohne Programmierkenntnisse, ohne eigene CSS-Regeln und ohne Hooks – im Theme-Editor globale Stil-Änderungen vornimmst und die Templates so mit Blöcken ergänzen kannst, wie du magst. Das geht dann völlig ohne Child-Themes und verringert den ganzen Aufwand, der bisher betrieben wurde, ganz erheblich. Auch die Entwickler des Page-Builders Elementor gehen in eine ähnliche Richtung, wenn (zumindest in der kostenpflichtigen Version) die Möglichkeit geboten wird, eigene Templates mit dem Page-Builder zu erstellen.

    Thread-Starter c3pu2011

    (@c3pu2011)

    Hallo Ihr zwei,
    vielen Dank für die schnellen und ausführlichen Antworten. Zugegeben, alles hab ich nicht verstanden, aber ich hab jetzt mal das Child-Theme-Thema hinten angestellt und das Simple CSS-Plugin installiert und spiele damit mal rum.
    Dankeschön und sicher bis zur nächsten Frage…
    c3pu2011

    Hallo,

    und das Simple CSS-Plugin installiert

    Aber das kannst du doch an sich auch direkt über Design > Customizer > Zusätzliches CSS machen.
    Wenn du dann noch das von Bego angesprochene Plugin Code Snippets nutzt, dann hast du eigentlich alles, um bestimmte Dinge entsprechend anzupassen.

    Wenn das Problem damit für dich aber behoben sein sollte, freuen wir uns, wenn du das Thema als gelöst markierst:
    Gelöst
    Die Option findest du rechts in der Sidebar. Danke.

    Viele Grüße
    Hans-Gerd

    Thread-Starter c3pu2011

    (@c3pu2011)

    Hallo,

    Aber das kannst du doch an sich auch direkt über Design > Customizer > Zusätzliches CSS machen.

    Das stimmt natürlich und auf den ersten Blick komme ich mit Zusätzliches CSS sogar besser zurecht wegen den vorgeschlagenen Optionen. Ich hab es hauptsächlich mal installiert wegen der Möglichkeit Seiten-spezifisches CSS einzugeben (Obwohl ich noch nicht weiß ob ich das brauche…).

    Wenn das Problem damit für dich aber behoben sein sollte, freuen wir uns, wenn du das Thema als gelöst markierst:

    Mach ich!
    Viele Grüße
    c3pu2011

    super – danke 👍

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)

Das Thema „function.php für Child-Theme von generatepress“ ist für neue Antworten geschlossen.