PHP-Frage zur functions.php bei Child Theme von "Attitude"

  • Hallo,

    ich habe für ein kleines Projekt eine Seite mit dem "Attitude" Theme erstellt.
    Am Theme habe ich nur wenige CSS-Änderungen vorgenommen und den "footer" geändert.

    Ich habe für das Theme ein Child-Theme erstellt. Die CSS-Änderungen in der
    style.css im Child Theme funktionieren wunderbar. Leider bekomme ich es nicht zum laufen,
    dass der footer über das Child Theme läuft. Meine PHP-Kentnisse sind leider nur begrenzt.

    Also: Ich habe im Parent-Theme "Attitude" die functions.php, in der auf die "library/structure/footer-extensions.php" verwiesen wird. Nehme ich da meine Änderungen in der "footer-extensions" vor, funktionieren diese
    logischerweise. Nun möchte ich das ganze ja über das Child-Theme laufen lassen.

    Habe nun im Child-Theme die Ordner-Struktur "library/structure/" mit meiner geänderten "footer-extensions.php" darin. Im Hauptverzeichnis des Child-Theme habe ich nun eine leere functions.php erstellt.

    Was muss ich in die functions.php eintragen, dass die footer-extensions.php aus dem Child-Theme verwendet wird?

    Habe schon unzählige eigene Versuche gemacht. Es hat allerdings jedes mal in einem PHP-Error geendet...

    Hier der Inhalt der originalen functions.php aus dem Parent-Theme:
    (In der 98. Zeile wird auf die footer-extensions.php verwiesen und ein paar Zeilen
    darüber, durch das Verzeichnis navigiert)

    • 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

  • Hat denn keiner eine Idee, wie ich das ganze umsetzen könnte?

    Meine functions.php im Child-Theme sieht mittlerweile so aus:

    Die zusätzlich eingebaute Filterfunktion in der 4. Zeile funktioniert einwandfrei.
    Mit dem Rest, bekomme ich immer eine weiße Seite.
    Ich habe mir die Zeilen von der originalen functions.php aus dem Parent-Theme kopiert und nur die Pfade hinzugefügt (z.B. attitude-child/)

    Einmal editiert, zuletzt von christian.w. (29. Mai 2013 um 23:11)

  • Der Artikel hier sollte Dir weiterhelfen:
    http://bueltge.de/wordpress-child-themes-verstehen/1192/

    Und natürlich:
    http://codex.wordpress.org/Child_Themes

    Normalerweise kopiert man einfach die zu modifizierende Datei ins Child und nimmt seine Änderungen vor. Komplexer wird es, wenn das Theme ein Framework verwendet oder - wie in Deinem Fall - die Funktionen auslagert.

    Wenn Du eine spezifische Funktion verändern willst, reicht es aus, das Vorhandensein der Funktion in der functions.php (Child) zu validieren und mit den eigenen Änderungen zu überschreiben.

    Viel Erfolg!

  • Danke für die Links. Ich hoffe, ich habe es richtig verstanden.
    Habe jetzt die beiden Dateien (footer-extensions.php und header-extensions.php) ins Hauptverzeichnis
    des Child Themes gespeichert und die beiden Dateien per "include" in die functions.php geschrieben.

    meine function.php aus dem Child-Theme sieht nun so aus:

    Ich bekomme jetzt zumindest keine weiße Seite mehr, jedoch tut sich nichts.
    Es wird immernoch der Code der beiden Dateien aus dem Parent Theme verwendet.

    Was mache ich falsch?
    Wie bereits erwähnt, sind meine PHP-Kentnisse leider noch nicht so gut.
    Ich verstehe i.d.R. den Aufbau von fertigen Scripten, aber fürs selber schreiben, reicht es nicht.

    Einmal editiert, zuletzt von christian.w. (29. Mai 2013 um 23:59)

  • a) Du musst die nicht inkludieren. Im Prinzip benötigst Du auch keine functions.php - es sei denn, Du willst eine Funktion aus dem Parent verändern.
    b) Sobald Du eine Kopie der Parent-Datei im Child anlegst, wird diese automatisch geladen und verwendet.

    Probier das einfach mal aus und füge ein plumpes "echo 'Test'" an einer beliebigen HTML-Stelle ein. :)

  • zu b: ich habe jetzt mal nur die beiden Datein ins Child Theme kopiert, ohne functions.
    Es tut sich nichts, Änderungen werden nicht übernommen. (Als Erinnerung: Wenn ich die Änderungen in den beiden Dateien im Parent Theme vornehme, funktionieren diese einwandfrei. Es liegt also nicht an den Änderungen.)

    zu a: aber mit dem was ich vor habe, möchte ich doch eine Funktion aus dem Parent verändern? oder ist das nur auf die functions bezogen? meine "add_filter" Funktion aus der functions im Child, funktioniert ja.

  • Ich habe die Lösung für das Problem!

  • Der Code wird einfach in die functions.php im Attitude Child-Theme angewendet. Eine externe footer-extensions.php, wird dann im Child-Theme nicht benötigt.

Jetzt mitmachen!

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