Variablen effizient an eine WordPress-Vorlage übergeben
Eine Herausforderung für Theme- oder Plugin-Entwickler get_template_part
ist die Unfähigkeit, Variablen an die geladene WordPress-Vorlage zu übergeben. Es gibt jedoch eine Alternative mit locate_template
.
Überblick
In diesem Beispiel zeigen wir drei Easy Digital Download- Einträge an. Ich benutze EDD jetzt schon seit einiger Zeit und obwohl es viele Funktionen hat, ist es immer noch überraschend leicht.
Wir werden die Einträge abrufen und in der Variable speichern $edd_download
. Wir laden dann die WordPress – Vorlage, indem wir die Variable übergeben. Eigentlich ist das Übergeben der Variable zu viel gesagt: Wir laden die Vorlage einfach so, dass die $edd_download
Variable den richtigen Gültigkeitsbereich hat, um in der geladenen Vorlage verwendet zu werden.
Laden einer WordPress-Vorlage
Dieser Code kann in eine Funktion eingefügt werden. Sie können diese Funktion dann mit einem Action-Hook in einen Bereich Ihres Themas stecken oder die Funktion einfach als Template-Tag aufrufen. In meinen Themen verwende ich Hooks, damit Benutzer später Inhalte hinzufügen oder entfernen können. Das ist alles, was wir für den Code brauchen:
Vorlagencode
Jetzt brauchen wir die WordPress-Template-Datei. Wenn Sie den obigen Aufruf bemerken, locate_template
erwartet der, die Datei download-home.php
im Verzeichnis parts
innerhalb des Themenordners zu finden.
Wir müssen immer daran denken, wp_reset_postdata()
nach einer foreach-Schleife aufzurufen, wenn wir aufgerufen haben setup_postdata()
.
Schlussworte
Warum ist das nach all dem nützlich? weil Benutzer eine Vorlage in einem untergeordneten Thema erstellen und die ursprüngliche Vorlage einfach überschreiben können. Es geht darum, Ihren Benutzern das Leben zu erleichtern. Sicher, dies kann auch durch Filter oder das Erstellen von austauschbaren Funktionen erreicht werden, aber einige Benutzer halten das Bearbeiten einer Vorlage, die sich auf eine Aufgabe konzentriert, möglicherweise für einen saubereren Ansatz, als sich mit einer Datei mit vielen Funktionen für mehrere verschiedene und nicht zusammenhängende Aufgaben zu befassen.