WordPress 5

WordPress-5-Tutorial: Neuen Seitentyp erzeugen

Aus Kapitel 19, »Seitentyp entwickeln«, Abschnitt 19.1.1, »Seitentyp einbinden und konfigurieren«

Die Einbindung eines neuen Seitentyps erfolgt grundsätzlich programmatisch. Also entweder über die Datei functions.php durch das Theme ins System injiziert (für die ersten Beispiele einfacher umzusetzen), oder, etwas aufwendiger, ordentlich in ein Plugin verpackt. Versuchen Sie es anfangs über die functions.php, da sehen Sie schneller, was Sie gerade ausprobieren.

Zur Einbindung des Seitentyps benutzen Sie einen in WordPress überall etablierten Mechanismus, sog. Hooks, Haken. Das sind Funktionsaufrufe, mit denen Sie Ihren eigenen Programmcode an eine ganz bestimmte Stelle im System einklinken. In diesem Fall gleich am Anfang, wenn das WordPress-System initialisiert wird (init). Das folgende Code-Beispiel hängt dann einen Funktionsaufruf in die Initialisierungskette, der den neuen Seitentypen anmeldet (add_wh_events() für »WordPress-Handbuch-benutzerdefinierter-Seitentyp«).

Ziel

Einrichtung eines neuen Seitentyps Veranstaltungen (wh_event) auf Basis von Beiträgen.

Das Anlegen eines neuen Seitentyps auf Basis eines existierenden (z. B. Beiträgen) erfordert nur wenige Zeilen Code.

Vorgehen

Hängen Sie den folgenden Beispiel-Code ans Ende der Datei functions.php ihres aktuellen Themes. Die einzige Funktion add_wh_events() registriert den neuen Seitentyp, sobald WordPress im Browser geladen ist.

Aktualisieren Sie eine beliebige Seite des Backends neu. Im linken Admin-Menü erscheint sofort der neue Punkt VERANSTALTUNGEN.

Statt abtippen: Copy & Paste von https://wpbuch.com/listing-19-1

Ergänzung in der Datei functions.php um einen neuen Seitentyp

So funktioniert‘s

Das Code-Fragment beginnt mit der Funktionsdefinition add_wh_events() für die Anmeldung des Seitentyps. (Es ist guter Script-Programmierstil, Funktionen, die man später benutzt, vorher zu definieren, auch wenn das, streng genommen, nicht notwendig ist.) Dabei fallen zwei detaillierte Arrays auf:

  • $labels: enthält Beschriftungen für Labels, Links, Buttons etc., überall, wo im Backend BEITRAG, SEITE, oder eben VERANSTALTUNG auftaucht.
  • $args: steht für »Argumente« und ist die eigentliche Konfiguration des Seitentyps mit allerhand Optionen. Die erste Option ist die Auflistung der verwendeten labels, die Verknüpfung zum eben definierten Array $labels. Die Trennung und explizite Aufführung über die Variable macht an dieser Stelle zugunsten der Übersicht Sinn. Die ellenlange Parameterliste wäre hinter ‚labels‘ => doch arg unleserlich. Alle anderen aufgeführten Arrays sind kleiner und werden direkt dahinter geschrieben (supports, taxonomies etc.).

Nach der Vorbereitung, der Definition der Arrays, erfolgt die eigentliche Seitentypanmeldung über register_post_type(), mit dem internen Namen wh_event – und einem Zeiger auf die Konfigurationsarrays $args.

Die nun folgende geschweifte Klammer schließt die Funktionsdefinition. Danach erfolgt der Einsatz des schon erwähnten Hooks: Die Funktion add_action() wird unmittelbar in der functions.php-Datei ausgeführt, da sie in keiner anderen Funktion eingebettet ist. Sie löst allerdings nichts sofort Sichtbares aus, sondern meldet lediglich an, WordPress möge doch bitte während seiner Initialisierungsphase (init) den in der Funktion add_wh_events() beschriebenen Seitentypen wh_event mitinitialisieren.

Hinweis: Dieses Schema finden Sie sehr häufig bei der Hooks-Programmierung. Zusätzliche Funktionalitäten werden über PHP-Funktionen erstmal bereitgestellt, und über den Hooks im System angemeldet.