Support » Themes » Travelify Child Theme, welches sind die Layout Dateien ?

  • Grüß Euch!

    Ich verwende für eine Domain das Theme ‚Travelify‘. Das Child-Theme ist erstellt. Nun will ich zusätzliche Funktionalität rein bringen. Als Beispiel, bei Kategorienlisten wird die Beschreibung nicht angezeigt. Wie ich die rein kriege, weiss ich, aber nicht wo. So werden in der ‚archive.php‘ lediglich Funktionen und Aktionen aufgerufen, von Layout weit und breit keine Spur.

    Verwendet jemand von Euch dieses Theme, oder kennt sich sonst damit aus?

    Gruss René

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Moderator Bego Mario Garde

    (@pixolin)

    Das Template archive.php enthält einen Hook travelify_main_container. Über diesen Hook wird in der Datei content-extensions.php die Funktion travelify_content eingebunden. Die Datei ruft mit get_post_meta() Eingaben aus Metaboxen (Auswahl „Keine Seitenleiste“, „Keine Seitenleiste, volle Breite“, …) für das Layout ab und verwendet sie in einer Variablen $layout, um verschiedene Template-Parts (z.B. get_template_part( 'content','rightsidebar' );) abzurufen. Diese Template-Parts enthalten HTML-Tags mit Attributen für die CSS-Klasse, z.B. <div id="primary" class="no-margin-left">, die im Stylesheet mit CSS-Regeln wie z.B. .no-margin-left { margin-left: 0px !important; } formatiert werden.

    Mit einem Programmier-Editor, der dateiübergreifendes Suchen erlaubt, lässt sich das schnell herausfinden.

    Ich danke dir für die Antwort. Dateiübergreifendes Suchen habe ich bereits versucht, das war ja mein erster Gedanke, ist aber wohl in die Hose gegangen, ‚excerpt()‘ wurde nicht gefunden, obwohl es genau so in der content-extension.php drin steht.

    Das heisst jetzt also, ich muss diese Datei in mein Child kopieren inkl. der Verzeichnisstruktur im Parent? also ‚library/structure/content-extensions.php‘? Oder direkt ins Child-Verzeichnis?

    Moderator Bego Mario Garde

    (@pixolin)

    Ausprobieren 🙂

    🙂

    Das Theme ist nicht kooperationswillig. Ich hab mit die() versucht eine Ausgabe zu erzwingen. Ich werde jetzt erst mal die Datei im Parent bearbeiten, bis ich eine Änderung feststellen kann. Wenn das funktioniert, kann ich es im Child testen. Feedback folgt…

    Das funktioniert so gar nicht.

    travelify/library/structure/content-extension.php

    Den Titel bei den Suchergebnissen habe ich um zusätzliche Zeichen ergänzt. Diese werden entsprechend ausgegeben.

    travelify-child/library/structure/content-extension.php und
    travelify-child/content-extension.php

    Hier habe ich beide Dateien um jeweils andere Zeichen ergänzt. So stelle ich jetzt fest, dass weiterhin die Datei im Parent ausgeführt wird. Dabei macht es keinen Unterschied, ob ich im Child jeweils nur die Eine oder Andere Datei auf dem Server habe, oder Beide.

    Bei WPDE.org habe ich in einem Thread gelesen, dass die Datei wohl ins Unterverzeichnis soll. Im Gegensatz zu den Dateien im Hauptverzeichnis des Child, muss ich Dateien im Unterverzeichnis irgendwie zusätzlich registrieren, damit Das Child das versteht?

    Nachtrag: Beim Theme Coder bin ich auf einen Hinweis gestossen, Stichwort Unterschied Templatedateien / Funktionsdateien. Wenn ich das aber richtig verstanden habe, können Funktionsdateien nicht im Child überschrieben werden.

    Das würde dann aber auch heissen, wenn das Layout in einer Funktion generiert wird, kann ich das Layout gar nicht anpassen?

    • Diese Antwort wurde geändert vor 2 Wochen von  .
    • Diese Antwort wurde geändert vor 2 Wochen von  .
    • Diese Antwort wurde geändert vor 2 Wochen von  .

    Die Lösung ist gefunden.

    Grundsätzlich ist es so, dass Templatedateien im Child automatisch erkannt werden. Sind solche Dateien im Parent in Unterverzeichnissen, müssen sie auch im Child in den exakt selben Unterverzeichnissen sein.

    Das Theme ‚Travelify‘ hat in den üblichen Templatedateien wie content.php, single.php oder archive.php überhaupt keinen HTML Code drin. Dieser wird erst in Funktionen generiert, welche von diesen Dateien aufgerufen werden.

    Ja, finde ich jetzt auch etwas unübersichtlich, ob das zwingend so muss, sei dahingestellt, ist bei diesem Theme jetzt einfach mal so.

    Die Funktionsdateien können jetzt aber nicht wie Templatedateien einfach analog ins Child kopiert werden. Das funktioniert überhaupt nicht. Was man machen kann, sind einzelne Funktionen in die functions.php des Child rein schreiben. Dazu kopiert man die ganze Funktion (Name muss identisch bleiben) ohne das if ( ! function_exists( 'funktionsname' ) ) : drum rum und fügt es in die functions.php des Child ein. Der Inhalt der Funktion kann nun den eigenen Wünschen angepasst werden.

    Die Lösung hat mir ein Beitrag von Thomas Weichselbaumer auf der Seite themecoder.de gebracht.

    • Diese Antwort wurde geändert vor 2 Wochen von  .
Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)