Für jeden benutzerdefinierten Beitragstyp in WordPress können wir ein individuelles single.php Template anlegen und nur speziell für diesen Beitragstyp ausliefern lassen. Das hat den Vorteil, dass sich der Template-Aufbau und somit das Design, benutzerdefinierter Beitragstypen grundsätzlich vom Standard-Beitragstyp „Post“ unterscheiden kann.

Wie kann ich ein individuelles single.php Template für meinen benutzerdefinierten Beitragstyp anlegen?

Grundsätzlich ist dieser Vorgang recht einfach. Ein Beispiel: Wir haben einen neuen benutzerdefinierten Beitragstyp „Rezepte“ und möchten dafür ein individuelles single.php Template nutzen. Den benutzerdefinierten Beitragstyp haben wir mit register_post_type() folgendermaßen angelegt:

Wie wir im oberen Beispiel sehen können, haben wir für unseren benutzerdefinierten Beitragstyp den Identifier bzw. Post-Type Key „recipe“ register_post_type( 'recipe', ... festgelegt. Dieser Post-Type Key ist wichtig für die Erstellung des individuellen single.php Templates, welches wir in WordPress speziell für unseren „Rezept“ Beitragstyp nutzen wollen.

So funktioniert’s: Erstelle eine neue PHP-Datei mit dem Namen single-recipe.php und lade diese Datei in das Hauptverzeichnis deines Themes ../wp-content/themes/dein-theme/single-recipe.php. Nun wird immer automatisch dein individuelles Single-Template für deinen Rezept-Beitragstyp verwendet, wenn du gerade ein spezielles Rezept besuchst.

Würde dein benutzerdefinierter Beitragstyp den Post-Type Key „portfolio“ verwenden, dann müsste der Name deiner Single-Template Datei single-portfolio.php lauten.

Wie kann ich das single.php Template vom Plugin laden?

Wie wir nun wissen, befindet sich das individuelle Single-Template eines benutzerdefinierten Beitragstypen immer im Hauptverzeichnis eines Themes, um von WordPress automatisch erkannt zu werden. Was können wir aber machen, wenn wir diese Template-Datei stattdessen von einem Plugin aus laden und einbinden möchten?

Für diesen Fall gibt es in der Tat eine Lösung. Mit Hilfe des WordPress-Filters single_template können wir das Verzeichnis beeinflussen, von wo aus ein individuelles single.php Template geladen werden soll. Dafür ist die folgende Funktion sehr hilfreich:

In der oberen Funktion fragen wir zunächst den aktuellen Beitragstyp mit if( $post->post_type === 'recipe' ) {} ab, um herauszufinden das wir den richtigen Beitragstyp treffen. In diesem Fall ist das, wie aus unserem Beispiel, der Beitragstyp „Rezept“.

Diese Funktion funktioniert so, dass bevorzugt ein vorhandenes „single-recipe.php“ Template aus dem Theme geladen wird. Nur wenn diese Datei nicht vorhanden ist, wird die „single-recipe.php“ Datei von unserem Plugin geladen und eingebunden. Das könnt ihr natürlich je nach Bedarf abändern.

Individuelles WordPress Single-Template für benutzerdefinierten Beitragstyp vom Plugin einbinden Wertung: 5 / 5 (4Stimmen)
Der Autor
Veröffentlicht von
Martin Jost
Weiterlesen
Schreibe einen Kommentar

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