Wie Du das Design einer einzelnen WordPress Seite änderst

Ihr, die ihr öfter mal an Eurem WordPress Theme herumschraubt, kennt das sicherlich: Es muss etwas an einer Seite geändert werden – aber nur an der.

Wie macht man das?

Ich zeige Euch hier einen kleinen Kniff, der fürs Erste reichen soll. Eine stabile und nachhaltige Lösung ist das zwar nicht, aber wir wollen ja auch nicht gleich mit Kanonen auf Spatzen schiessen.

Nehmen wir mal an, es gibt bei Eurer WordPress Website eine Seite bzw. page, bei der ihr das äußere Erscheinunsbild abändern möchtet. Aber eben nur bei der! Keine der anderen statischen Seiten soll betroffen sein.

Nun könnte man mittels CSS herumwerkeln und hier irgendwie den Hintergrund auf Grün statt Blau setzen oder mit der CSS Anweisung display:none die Metainformationen unterdrücken. Zum Beispiel.

Was macht Ihr aber, wenn Ihr beispielsweise Euer HTML Gerüst der Seite umstellen oder abändern wollt? Oder einen PHP-Block einfügen?
In letzterem Falle würde man wohl in der page.php – die in WordPress für die Strukturierung von statischen Seiten Seiten zuständig ist – eine Funktion einfügen, die mit Hilfe von conditional Tags abfragt, ob Ihr Euch auf der richtigen Seiten befindet und dann erst den gewünschten Code ausführt. Allerdings wird diese Abfrage immer ausgeführt, sobald eine statische Seite aufgerufen wird. Das ist unnötige Inanspruchnahme des Interpreters.

Es geht einfacher.

Wie macht man das?

Ihr müsst die ID bzw. den Namen/Slug der Seite herausfinden. Wenn Ihr nicht wisst, wie Ihr das machen sollt, empfehle ich Euch das Plugin Reveal IDs.

Ihr kopiert Euch die page.php Eures Themes und speichert sie unter dem Namen page-ID.php wieder ab, wobei ID durch die ID der Seite ersetzt wird. Zum Beispiel page-41.php.
In dieser page-41.php könnt Ihr jetzt soviel ändern wie Ihr wollt. Nach der Bearbeitung muss sie natürlich per FTP in das entsprechende Theme-Verzeichnis auf dem Webserver geschoben werden.

Da es bei den gefühlten Millionen Themes derzeit, auch x Möglichkeiten gibt, wie eine page.php gestaltet sein kann – kann ich hier keine Tips zu den denkbaren Änderungen geben, die Ihr anbringen könntet. Ich kann Euch höchstens raten, aufzupassen, welche HTML Elemente mit welchen CSS Regeln verknüpft sind – sonst zerhaut es Euch das Layout.

Was passiert nun?

Dank der ausgefeilten Template Hierarchie in WordPress erkennt es das System, wenn der Surfer die besagte Seite aufrufen will und greift gleich zur page-41.php Vorlage. Wird eine andere Seite aufgerufen, ist wieder das normale page.php Template gültig.
Es wäre noch möglich, statt der ID den Namen der Seite zu verwenden. Das ist nicht der Seitenname, den ihr im entsprechenden Editorfeld vergebt, das ist der Slug, den WordPress daraus bildet. Also wenn Ihr Eure Seite Kontakt genannt habt, ist die Chance groß, dass der Name kontakt lautet. Dann müsste Eure Datei page-kontakt.php heissen.

Ich ziehe allerdings die ID vor, weil Seiten manchmal auch umbenannt werden, während IDs relativ stabil sind.

Wo liegen die Vorteile?

Es ist unglaublich einfach zu bewerkstelligen und kleine Änderungswünsche lassen sich ohne die hässlichen CSS Hacks wie display:none anbringen. Ihr schont den Arbeitsspeicher des Servers durch den Verzicht permanenter Abfragen wie „Wo bin ich? Welche Seite ist das jetzt?“ und lasst die Theme-Dateien unangetastet. Allerdings könnte es sein, dass bei einem Theme-Update Eure selbst erstellte Datei überschrieben und gelöscht wird. Hier lohnt es sich, mal in die Child-Theme Materie zu schnuppern.

Wo liegen die Nachteile?

Das wird nur auf Eurer Installation aus dem Stand funktionieren. Bei anderen Websites sind andere Themes im Einsatz und tragen die Seiten andere IDs bzw. andere Namen. Es ist also nicht einfach übertragbar.
Der Spielraum zur Gestaltung ist auch übersichtlich und beschränkt sich auf den Teil des Codes, der in der originalen page.php vorhanden ist. Meistens ist der Loop heute ausgelagert und lässt sich damit in der eigenen page-ID.php nicht ändern.
Auch wenn dieses Prozedere auch für Artikel/Beiträge funktioniert (single-ID.php), kann damit immer eine Seite und ein Beitrag geändert werden. Wollt Ihr zusätzlich zur Seite 41 auch noch die Seite 367 anders gestalten, braucht Ihr zusätzlich zur page-41.php auch noch eine page-367.php.
Spätestens hier sind dann doch andere Lösungen des Problems angesagt.

Ich hoffe, Euch hier etwas geholfen zu haben. Den Beitrag dürft Ihr gern teilen oder darauf verlinken.

Schreibe einen Kommentar

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