Child-Theme - override von include-Dateien?

  • Hello Leute,

    ich hoffe es kann mir jemand hier helfen. Ich baue in letzter Zeit immer öfter auf meinem Mini-Framework neue Themes auf. Jetzt hab ich mich ein wenig in "Child-Themes" eingelesen und entdeckt, dass es doch Sinn macht, da so alle "alten" Themes leichter update-fähig werden. Allerdings zerlege & verschachtel ich meinen Code gerne in kleine Teile oder Schnipsel, die ich dann einbinde, oder eben nicht

    Nun steh ich leider bei folgender Frage an:
    - Ich rufe Teile meiner Seiten gerne mit zB.: get_nav_web_main(); Funktionen auf.
    - Diese inkludier ich in meiner functions.php mit zB.: require_once(THEMELIBFUNC . '/functions-module.php') ;
    - In der functions-module.php liegt dann etwas wie z.B.:

    Code
    function get_nav_web_main() {
            $nav_web_main = include(THEMELIBNAV . '/nav-web-main.php') ;
            echo apply_filters('get_nav_web_main', $nav_web_main );
        }

    FRAGE: Nun würde ich im Child-Theme gerne eine andere zB.: nav_web_main inkludieren. Muss ich jetzt die Ordner-Struktur im Child-Theme-Ordner wiederholen und einfach dort eine neue functions-module.php einbauen, oder ist da ein anderer Weg vorgesehen? Oder besteht die Möglichkeit gar nicht?

    Vielen Dank für Eure Hilfe im Voraus!

    • 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

  • Du könntest es sicher so hindrehen, dass Du die ganze Datei überschreibst, was aber für das Ändern einer einzelnen Funktion irgendwie overkill wäre. Die gleiche Funktion noch mal definieren und so überschreiben geht in PHP nicht, soweit ich weiß.

    Ich nutze aktuell gerade das Hybrid-Themeframework, und da wird viel mit Hooks, Actions und Filtern gearbeitet. Ich glaube, viele solcher Funktionen sind da so geregelt, dass intern die Methode nicht direkt aufgerufen sondern über einen Hook angesprochen wird. Wenn man das dann im Child-Theme überschreiben möchte, fügt man dem Hook einfach seine eigene Methode hinzu und entfernt die allgemeine Parent-Theme-Methode. Das macht sich sehr schön einfach und elegant. Ich würde deshalb vorschlagen, dass Du ins Hybrid-Theme mal reinschaust, wie das da gelöst ist. Da findest Du sicher eine brauchbare Inspiration. ;-)

  • Hey, erstmal Danke für die Antwort! Hybrid hab ich mir schon vor langem einmal besorgt und mich dort jetzt wieder ein wenig eingelesen. Hab mir auch einige Child-Themes von Thematic angesehen, weil die Struktur dort ziemlich von Hybrid "geklaut" ist. Schön langsam begreif ich´s. Problem ist nur irgendwie, dass man mit 50 Hooks und x Funktionen dann irgendwann einmal die Übersicht verliert ; )

Jetzt mitmachen!

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