Child-Theme-Frage

  • Hello Leute,

    nachdem meine letzten beiden Beiträge zwar einige interessierte Leser hatten, aber leider niemanden, der mir meine Frage beantworten konnten, kommt hier die Folgefrage(n):

    * Gibt es irgendwo einen Link mit den Wordpress-Theme-Dateien, die man mit einem Child-Theme überschreiben kann? Ich weiß derzeit nur, dass
    - style.css
    - functions.css
    - index.php
    - templates.php
    überschreibbar sind.

    * Weiß jemand, ob man Dateien, die in der Theme-eigenen (Sub)Ordnerstruktur liegen, überschrieben werden können? zB meintheme/meinsubordner/template.php

    Mittlerweile freu ich mich auch schon über ein freundliches "Hab leider auch keinen Plan" ;)

    • 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 kenne ehrlich gesagt auch nicht wirklich die Theorie hinter den Child-Themes, aber wieso probierst Du es nicht einfach aus? Deine Frage sollte sich doch praktisch recht simpel beantworten lassen. Kopieren, 'Hello World' oder so reinschreiben und aufrufen. ;-)

    In dem Theme, an dem ich gerade arbeite, überschreibe ich z.B. die header.php des Hauptthemes. Ich nehme also an, dass das mal mindestens mit allen Dateien geht, die im Themeordner liegen und standardmäßig von WordPress aufgerufen werden (weil WP dann vermutlich erst beim Chiold-Theme im Ordner und dann erst beim Parent-Theme nachschaut?!).

    Was eventuell nicht geht, sind Dateien, die WP nicht kennt, und die nur von anderen Dateien includiert werden. Wenn die header.php des Hauptthemes beispielsweise ein include der Datei header-extra.php macht, würde ich vermuten, dass man das nicht so einfach überschreiben kann. Ist aber nur geraten. Wenn ich da richtig liege, würde das wohl Deine Unterordner betreffen. Aber wie gesagt, teste es doch mal (und schreib dann hier mal, ob es geht, interessiert mich auch). Ggf. musst Du dann schauen, wo die Dateien eingebunden werden, und diese Datei auch überschreiben.

  • Hey Ammaletu,

    scheinbar werden include-Dateien wirklich nicht überschrieben. Vielleicht hab ich aber irgendwo ein Detail übersehen, oder eine Kleinigkeit falsch gemacht. D.h., dass ein Child-Theme eigentlich nur Sinn macht, wenn man alle Funktionen wirklich brauchen kann. Allerdings bekomme ich Funktionen mit remove_action auch nie weg, obwohl es zB bei Hybrid so funktioniert. Ich muss immer eine remove-Funktion machen und die vor dem add_action dann auch so aufrufen... Ziemlich mühsam. Wäre aber auch zu schön gewesen in irgendeinen /lib/xy-Subordner eine Datei rein zu legen, Kleinigkeit ändern und fertig... Tja ; )

    Meine derzeitige Lösung, da ich eigentlich nie Blogs mache, ist derzeit, dass ich mir ein eigenes "Framework" zurecht gebastelt habe, mit dem ich leicht diverse css und js Elemente einbinden kann und für nav, etc. leicht anpassbare Funktionen geschrieben habe. Der nächste Schritt wird vermutlich sein, das "Framework" so auszuweiten, dass ich dadurch eine one-klick-Basis ohne Seitentemplates habe. Ist derzeit aber nur so eine Idee.

  • Zitat

    scheinbar werden include-Dateien wirklich nicht überschrieben. Vielleicht hab ich aber irgendwo ein Detail übersehen, oder eine Kleinigkeit falsch gemacht.

    Ne, ich glaub, das macht schon Sinn, dass das nicht geht.


    Zitat

    D.h., dass ein Child-Theme eigentlich nur Sinn macht, wenn man alle Funktionen wirklich brauchen kann.

    Ich würde eher sagen, damit das Sinn macht, muss das Parent-Theme hinreichend flexibel sein. Spezielle Funktionalitäten sollten über Theme-Options konfigurierbar sein oder über Widgets frei platziert werden können. Und dann über Filter und Actions die ganze Sache anpassbar machen. Ich habe bisher erst an einem Hybrid-Child-Theme gearbeitet, aber bin mit der Erweiterbarkeit schon sehr zufrieden, auch wenn ich nicht wirklich viel geändert habe. Zur Not kann man auch brachial werden und Themedateien einfach überschreiben.


    Zitat

    Allerdings bekomme ich Funktionen mit remove_action auch nie weg, obwohl es zB bei Hybrid so funktioniert. Ich muss immer eine remove-Funktion machen und die vor dem add_action dann auch so aufrufen...

    Das sollte eigentlich schon gehen. Bist Du sicher, dass der remove_action-Aufruf stimmt? Ausgehend von der Doku:
    http://codex.wordpress.org/Function_Reference/remove_action

    ...müsstest Du zum einen genau die Argumente übergeben, die beim add_action drinstanden. Und zum anderen müsste das remove natürlich nach dem add kommen, also müsstest Du sicherstellen, dass Dein Code erst nach dem Code aus dem Parent-Theme ausgeführt wird.


    Zitat

    Ziemlich mühsam. Wäre aber auch zu schön gewesen in irgendeinen /lib/xy-Subordner eine Datei rein zu legen, Kleinigkeit ändern und fertig... Tja ; )



    Also in dem Fall musst Du Dir vielleicht einfach lokal ein Build-System bauen, z.B. mit Ant. Mit einem Ant-Buildfile wäre es kein Problem, zuerst das Parent-Theme zu deployen und dann das Child-Theme drüber zu schreiben.

Jetzt mitmachen!

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