Templates von NextGen gehören in das Child Themes

Child Themes sind in WordPress seit Version 3.0 verfügbar und stellen für viele Themes Entwickler eine tolle Erleichterung dar. Aufbauend auf einen Basis Themes können in dem Child Themes Erweiterungen oder Änderungen an dem Basis Themes vorgenommen werden. Wer sich zu diesem Thema näher informieren will findet bei Frank Bültge umfangreiche Infos.

Wie bei allen komplexen Systemen gibt es im Zusammenspiel Child Themes und NextGen jedoch ein kleines Problem. Ausgehend von der Philosophie, dass im Child nur die Dinge behandelt werden müssen welche Abweichungen von der Basis erfordern, bin ich in die Falle getappt.

Wie bereits im Beispiel NextGen –Einzelbilddarstellung mit Bildunterschrift per Template von mir beschrieben nutze ich die Template Möglichkeiten von NextGen. Um diese zu nutzen sind folgende Schritte notwendig:

1. Im Pfad des Themes muss der Ordner nggalery angelegt werden

2. In diesem Ordner werden die Templates abgelegt. Der Vorteil ist, dass bei einem update von NextGen diese Dateien nicht überschrieben werden.

3. Um z.B. eine Einzelbilddarstellung mit Bildunterschrift zu realisieren muss nun die Datei singlepic-caption.php angelegt werden. Wichtig dabei ist, dass der Name der Funktion in unserem Beispiel singlepic per Bindestrich mit dem Namen des Template caption verbunden ist.

WICHTIG ist nun aber, dass im Falle eines Child Themes der Ordner nggalery im Child angelegt werden muss. Wird der Ordner im Basis Themes angelegt passiert gar nichts.

 

4 Gedanken zu „Templates von NextGen gehören in das Child Themes“

  1. Hallo Klaus,

    gestern habe ich meinen noch sehr jungen Blog, der von meinem Hobby eBook-Reader handelt, auf ein Child Theme umgestellt.

    martina-schein.net/blog/

    So weit, so gut.

    Unter anderem habe ich auch das NextGen-Gallery-Plugin installiert.
    Bisher hatte ich diverse Änderungen direkt an den Dateien im Plug-Verzeichnis durchgeführt – nicht gut, das weiß ich inzwischen.

    Nachdem ich deine Homepage bei „Tante“ Google gefunden hatte, habe ich im Child Theme einen Unterordner „nggallery“ angelegt und die folgenden Dateien aus dem NextGen-Plugin-Verzeichnis in selbigen kopiert:
    „nggallery.css“, „gallery-caption.php“ und „singlepic-caption.php“.
    Auf irgendeiner Seite habe ich gelesen, dass man die „gallery.php“ ebenfalls dorthin kopieren und dann in „gallery-mytemplate.php“ umbenennen sollte, was ich ebenfalls getan habe.

    Danach habe ich die zuvor durchgeführten Änderungen der Dateien im Plugin-Verzeichnis der NextGen-Gallery rückgängig gemacht.
    Selbstverständlich habe ich die Änderungen in den drei o.a. Dateien im Unterorder „nggallery“ im Child Theme bestehen lassen.

    Das war allerdings der berühmte Satz mit X, denn die Änderungen wurden jetzt nicht mehr ausgegeben bzw. angezeigt, d.h. WordPress greift nicht auf die Dateien im Unterordner „nggallery“ im Child Theme zu.
    Es spielt auch keine Rolle, ob das Unterverzeichnis „nggallery“ so geschrieben ist „nggallery“ oder so „nggalery“, also mit nur EINEM l. Es funktioniert in keinem der beiden Fälle. Es funktioniert ebenfalls nicht, wenn ich die „gallery-mytemplate.php“ wieder lösche.

    In der „functions.php“, die im Child Theme liegt, habe ich angegeben, dass zuerst im Child nachgeguckt werden soll.
    define('CHILDTHEME_PATH', TEMPLATEPATH . 'tinas_child');
    Ich weiß allerdings nicht, ob das relevant ist, denn von php habe ich so viel Ahnung wie ein Waschbär vom Hochseeangeln. 😉

    Hast du eine Ahnung, wo hier der Fehler ist?

    Was muss ich tun, damit WordPress auf die drei Dateien im Child Theme im Unterordner „nggallery“ zugreift?

    VG
    Martina

    1. Da gibt es einiges zu beachten!
      1) Ich hoffe du hast das Child Theme korrekt angelegt?
      2) Die style sheets, dh die nggallery.css muss im Standard Style Sheet an erster Stelle vor allen anderen Definitionen wie folgt eingebunden werden:
      @import „css/ngg_dein_name.css“;
      Ich empfehle dringend einen anderen Namen wie bei NGG zu verwenden. Zusätzlich muss in den NextGen Optionen/Style der Haken bei Aktiviere und nutze Stylesheet… entfernt werden. Danach greift NextGen nur noch auf dein persöhnliches Style zu.
      css/… steht da ich alle zusätzlichen styles in einem Unterordner css ablege, dh. nicht im ordner nggallery. Damit kann ich styles besser verwalten.
      Du kannst es aber auch in dem beschriebenen Ordner belassen und den pfad so setzten
      3) In den Unterordner nggallery gehören alle Templates für NextGen. In meinen Anwendungen die php Files zur Gestaltung
      4) Soweit mir bekannt muss in der function nichts geändert werden!!

      Ich hoffe du kommst damit weiter
      Gruß Klaus

  2. Hallo Klaus,

    vielen Dank für deine Antwort. 🙂

    Genau das war es – am Importieren bzw. fehlenden Importieren der css-Datei hat es gelegen.

    Meine css heißt jetzt „nggallery_child.css“ und das Ganze funktioniert nach dem Import jetzt super – auch nachdem ich die Änderungen in der „nggallery.css“ im Plugin-Verzeichnis wieder rückgängig gemacht hatte.

    Die Dateien „gallery-caption.php“ und „singlepic-caption.php“ in meinem Child im Unterordner nggallery werden jetzt ebenfalls brav eingelesen.

    Deinen zweiten Satz unter Punkt 3 verstehe ich jedoch nicht. Du schreibst: „In meinen Anwendungen die php Files zur Gestaltung“. Meinst du hiermit ein Unterverzeichnis in der nggallery im Child namens „anwendungen“ oder vielleicht das root-Verzeichnis im Child?

    VG + schöne Feiertage
    Martina

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*