Es gibt viele Möglichkeiten, wie Sie das Aussehen einer bestimmten Seite auf Ihrer WordPress-Site ändern können. Sie können den Inhalt im WordPress Content Editor ändern. Sie können die CSS-Regeln ändern, die sich auf die Site auswirken. Oder erstellen Sie eine neue Datei in der Vorlagenhierarchie Ihres WordPress-Themes, die der jeweiligen Seite entspricht. Oder Sie können eine Themenseitenvorlage verwenden, die speziell für diese Seite entwickelt wurde. Das letzte ist, worüber wir hier sprechen. In diesem Tutorial erfahren Sie, wie Sie eine benutzerdefinierte WordPress-Seitenvorlage erstellen und warum Sie dies möglicherweise tun möchten. Wir beginnen mit dem Warum.
Wenn Sie „WordPress Theme Custom Page Template“ sagen, was meinen Sie?
Es gibt ein großes Terminologieproblem mit diesem Thema. Wie ich oben angedeutet habe, gibt es in der WordPress-Welt viele Dinge mit dem vagen Begriff „Seite“ und „Vorlage“, über die wir hier nicht sprechen. Das erste, was ich * nicht * meine, wenn ich „WordPress Custom Page Template“ sage, ist „ein WordPress-Theme.“ (Viele Leute, die neu in WordPress sind, sagen „Vorlagen“, wenn sie „ein WordPress-Theme“ meinen.“)
Was meine ich mit „benutzerdefinierte Seitenvorlage“? Ich meine, was rechts gezeigt wird. Sie bearbeiten beispielsweise den Seiteninhaltstyp in WordPress (obwohl er, wie wir später sehen werden, jetzt andere WordPress-Inhaltstypen enthalten kann). Und während Sie Ihre Seite bearbeiten, bemerken Sie das Feld „Seitenattribute“, Und innerhalb dessen können Sie (abhängig davon, ob Ihr Thema bereits über diese Vorlagen verfügt) diese Dropdown-Liste „Vorlage“ sehen. Dieses Auswahlfeld ist rechts dargestellt (es befindet sich auch auf der rechten Seite Ihres Bildschirms „Seitenbearbeitung“). Wenn Sie diese Dropdown-Liste sehen, liegt dies daran, dass Ihr Thema einige dieser „benutzerdefinierten Seitenvorlagen“ bereitstellt.“ Es handelt sich tatsächlich um Dateien im Ordner Ihres derzeit aktiven Themas (oder seines übergeordneten Elements) und haben ein einziges Unterscheidungsmerkmal, auf das wir später eingehen werden. Aber diese auswählbare Dropdown-Liste mit benannten Seitenvorlagen ist das, worüber wir heute hier sprechen.
Wie passt das in die Template-Hierarchie?
Ich habe bereits geschrieben, und ich werde es wahrscheinlich noch einmal tun, wie die Vorlage — es gibt dieses Wort wieder — Hierarchie ist wirklich das Schlüsselkonzept, das Sie verstehen müssen, um ein WordPress-Theme zu erstellen oder zu ändern. (Hier ist unser kurzes Intro dazu.) Fast alles andere ist ein Detail, das Sie herausfinden können, sobald Sie die grundlegende Dynamik der Vorlagenhierarchie verstanden haben. Das Spezifische, was wir heute meinen, liegt jedoch außerhalb der Vorlagenhierarchie. Dieses „selected template“ ersetzt im Wesentlichen den gesamten Auswahlprozess der Template-Hierarchie.
Wenn eine benutzerdefinierte Seitenvorlage in der oben gezeigten Dropdown-Liste ausgewählt wurde, wird diese „Vorlage“ -Datei verwendet. Punkt, keine Ausnahme.
Um zu wiederholen, dass, wenn eine benutzerdefinierte Seitenvorlage ausgewählt ist, diese „Vorlagendatei“ verwendet wird. Punkt, keine Ausnahme. Wenn nicht, sucht die WordPress—Vorlagenhierarchie nach einer etwas anderen Art und Weise, wie jemand versucht hat, eine bestimmte Seite zu formatieren – mit einer page-123.php
– oder page-custom-template-utilizer.php
-Datei. (Der Unterschied zwischen der benutzerdefinierten Vorlage und einer mit dieser page-$id
– oder page-$slug
-Struktur besteht wirklich nur in Interaktion und Schnittstelle.) Wenn keines davon gefunden wird, fällt WordPress auf page.php
zurück, falls vorhanden, und wenn nicht, landen wir beim ultimativen Fallback index.php
.
Wenn Sie sich fragen, warum Sie diese Methode im Gegensatz zur numerischen oder Slug—Methode verwenden — in beiden Fällen erstellen Sie schließlich eine benutzerdefinierte Datei in Ihrem Thema -, liegt der Grund darin, dass Sie mit benutzerdefinierten Vorlagen mehr Flexibilität und Unabhängigkeit zwischen Ihrem Thema und der Datenbank und dem Inhalt Ihrer Website erhalten. Aus diesem Grund würde ich es in fast jeder Situation empfehlen, wenn Sie sich nicht sicher sind, mit wem Sie gehen sollen. Mit der numerischen oder Slug-basierten page-*.php
-Struktur müssen Sie Ihrem Thema mitteilen, wie genau Ihre WordPress-Datenbankdaten gerade sind. (Wenn Sie das Thema beispielsweise auf einer anderen WordPress-Site wiederverwenden, ist diese Datei unbrauchbar.)
Wie erstelle ich eine benutzerdefinierte WordPress-Seitenvorlage?
OK, wir wissen also, dass benutzerdefinierte Seitenvorlagen die WordPress-Vorlagenhierarchie ersetzen. Und dass wir sie auf den tatsächlichen Seiten unserer WordPress-Site verwenden, indem wir sie aus einem Dropdown-Menü „Vorlage“ in der rechten Leiste des relevanten Inhalts auswählen. Es ist also an der Zeit, mit dem Erstellen einer benutzerdefinierten WordPress-Seitenvorlage fortzufahren.
Sie fügen Ihrem Thema (und es sollte wirklich ein untergeordnetes Thema sein, es sei denn, es gibt eine sehr starke Einschränkung, die dies für Sie unmöglich macht) eine Datei mit einem Namen wie my-template.php
oder really-cool-awesome.php
. Es spielt keine Rolle, solange Sie keinen Namen verwenden, der Teil der Vorlagenhierarchie ist, sind Sie golden. (Was bedeutet: Verwenden Sie keinen Namen wie page-whatever.php
. Wie oben erwähnt, glaubt die Vorlagenhierarchie von WordPress, dass sie eine Datei mit diesem Muster besitzt.)
Sobald Sie die Datei haben (cool-page-template.php
, was auch immer Sie bevorzugen), sollten Sie sie wie folgt starten:
<?php/*Template Name: Name To Appear In The Dropdown*/?>This is my custom template.
Und du bist im Grunde fertig. Wie Sie wahrscheinlich erraten können, ist der Name, der in der Dropdown-Liste „Vorlage“ angezeigt wird, das, was ich geschickt „Name“ genannt habe, um in der Dropdown-Liste angezeigt zu werden.“ Genau wie die style.css
-Datei Ihres Themas oder die Hauptdatei eines Plugins verwendet WordPress die Informationen in diesem Codekommentar, um ihm einen Kontext für die Arbeit zu geben.
Dann ist der Inhalt unserer Seiten in diesem Fall der grundlegende HTML-Text „Dies ist meine benutzerdefinierte Vorlage“. Wie Sie sich vorstellen können, ist es hier viel wahrscheinlicher, dass Sie den HTML-Inhalt, den Sie auf der Seite anzeigen möchten, einfügen. Also deine <h1>
Tags, <p>
Tags und vielleicht (wenn du Lust hast 🤪) etwas PHP, um benutzerdefiniertes Verhalten zu machen, das du zeigen willst.
Warum Ihre benutzerdefinierte WordPress-Seitenvorlage nicht angezeigt wird
Ich habe (mehr als einmal) die Erfahrung gemacht, dass meine neue WordPress-Seitenvorlage nicht angezeigt wird. Die bei weitem häufigste Ursache ist, dass ich eingegeben (oder falsch gespeichert) habe, wie der Dateiheader-Kommentar aussehen soll. Es muss mit dem genauen richtigen Titel gekennzeichnet werden. Also Template Name: Narrow Page
ist perfekt, aber WordPress wird niemals etwas finden, das stattdessen einen Header von Template: Custom
.
Es gibt noch ein paar andere Dinge zu überprüfen. Andere Gründe, warum Ihre benutzerdefinierte Seitenvorlage möglicherweise nicht angezeigt wird:
- Sie haben die Datei an der falschen Stelle abgelegt (sie muss sich in Ihrem aktuell ausgeführten Thema oder in ihrem übergeordneten Thema befinden)
- Sie haben Ihrer Vorlage eine Datei gegeben, die mit
page-
beginnt. Aufgrund einer Funktion von WordPress-Themes werden benutzerdefinierte Seitenvorlagen, die mitpage-
beginnen, stattdessen als Seite der Vorlagenhierarchie behandelt. - Ihrem Thema fehlt eine der beiden erforderlichen Dateien und funktioniert daher nicht. (WordPress-Themes * müssen * eine
index.php
-Datei und einestyle.css
haben.) - Es gab ein Problem damit in den Tagen von WordPress 4.9 (vor einigen Jahren)
Seitenvorlagen für Nicht-„Seite“ WordPress Benutzerdefinierte Beitragstypen
Für einen großen Teil der WordPress-Geschichte waren diese „benutzerdefinierten Seitenvorlagen“ nur für den Inhaltstyp „Seite“ bestimmt. (WordPress hat standardmäßig nur zwei Inhaltstypen, „Posts“ und „Pages“.) Aber in WordPress 4.7 wurde die Funktion hinzugefügt, dass Sie diese Seitenvorlagen mit neuen Inhaltstypen verwenden können (oft als „benutzerdefinierte Beitragstypen“ bezeichnet).
Dazu fügen Sie Ihrem „file header“ eine weitere Zeile hinzu.“ Es würde also ein bisschen so aussehen:
<?php/*Template Name: Narrower TemplateTemplate Post Type: post, page, event*/// Page HTML and PHP goes here...
Wie Sie wahrscheinlich erraten können, steht dieser neue Template Post Type:
-Header vor dem Namen „Code-Level“ für die (benutzerdefinierten) Post-Typen. Sie werden feststellen, dass wir im obigen Beispiel den page
-Inhaltstyp, mit dem WordPress ausgeliefert wird, sowie den post
-Inhaltstyp auflisten. Darüber hinaus unterstützen wir einen dritten „benutzerdefinierten Beitragstyp“ namens event
.
Ein guter Grund, benutzerdefinierte Seitenvorlagen zu verwenden
Wenn Sie dies bereits getan haben, werden Sie feststellen, dass die obige Seite kein Styling hat und sehr, sehr wenig wie der Rest Ihrer WordPress-Site aussieht (es sei denn, Sie haben das einfachste vorstellbare Thema). Das liegt daran, dass unsere Datei eine einfache Sache enthält und keine Funktionalität hat, die auf allen anderen Themenseiten sehr verbreitet ist. Es gibt keine get_header()
-, get_footer()
– oder Loop-Aufrufe, die alle Ihre anderen Themendateien wahrscheinlich ausführen.
Manchmal möchten Sie eine Seite, die dem Rest Ihrer Website nicht sehr ähnlich ist, aber dennoch Teil Ihrer WordPress-Verwaltungserfahrung ist. Diese benutzerdefinierten Vorlagen sind perfekt dafür.
Aber es zeigt auch eine der großen Stärken von benutzerdefinierten Vorlagen wie diesen: Manchmal möchten Sie eine Seite, die dem Rest Ihrer Website nicht sehr ähnlich ist, aber dennoch Teil Ihrer WordPress-Verwaltungserfahrung ist. Diese benutzerdefinierten Vorlagen sind perfekt dafür. Während Sie sehen, dass sie auch für Archivseiten oder (seltener) Kontaktseiten verwendet werden, wird diese Fähigkeit oft übersehen.
Und schließlich einige praktische Ratschläge zu Seitenvorlagen
Wenn Sie eine Seite erstellen möchten, die genau wie Ihre anderen Seiten aussieht (aber etwas anders aussieht), würde ich zunächst eine vorhandene Datei aus Ihrem Thema kopieren, wahrscheinlich page.php
. Dies liegt einfach daran, dass es für die meisten von uns einfacher ist, etwas zu ändern, als von Grund auf neu zu bauen. Das Codebeispiel gibt Ihrer Seitenvorlage den Sinn einer „leeren weißen Seite“, bei der Sie wahrscheinlich bestimmte Details zu Ihrer vorhandenen page.php
-Vorlage hinzufügen oder daraus entfernen möchten. Das Entfernen der Seitenleiste oder der Fußzeile sind beispielsweise sehr häufige Gründe, warum Benutzer in WordPress eine „benutzerdefinierte Seitenvorlage“ erstellen.
Wie bereits erwähnt, müssen Sie, wenn Sie die page.php
-Datei Ihres Themas duplizieren, um mit der Erstellung Ihrer benutzerdefinierten Seitenvorlage zu beginnen, sicherstellen, dass Sie den Header „Benutzerdefinierte Seitenvorlage“ hinzufügen, den wir oben haben. Auch dies ist die „magische“ Seite, auf der diese Vorlagen einfach funktionieren. Jetzt mach tolle Seiten!
Bildnachweis: Infrogmation