WordPress benutzerdefinierte Beitragstypen sind leistungsstarke Funktionen. Sie sind es, die WordPress von einem einfachen Blogging-Tool zu einem Content-Management-System machen und dir die wichtige Flexibilität geben, die du brauchst, um eine maßgeschneiderte Website zu erstellen.
Aber sie können Verwirrung stiften: Was sind WordPress benutzerdefinierte Beitragstypen genau? Inwiefern unterscheiden sie sich von Standard-Beiträge und -Seiten? Wie erstellt man sie? Und sobald du einen benutzerdefinierten Beitragstyp erstellt hast, wie füge ich ihn hinzu, zeige ihn auf deiner Website an und wie wird er in WordPress gespeichert?
In diesem Artikel zeige ich dir genau, wie WordPress benutzerdefinierte Beitragstypen funktionieren. Ich vergleiche sie mit den Beitragstypen, mit denen du vielleicht besser vertraut bist, zeige dir, wie man sie erstellt, und zeige dir, wie man Themenvorlagendateien verwendet, um sie auf deiner Website anzuzeigen.
Konkret werde ich das Thema abdecken:
Also lasst uns anfangen!
Was sind benutzerdefinierte Beitragstypen in WordPress?
Es ist wahrscheinlich einfacher zu erklären, was benutzerdefinierte Beitragstypen in WordPress sind, indem man ein breiteres Konzept erklärt: Beitragstypen.
Beitragstypen sind Möglichkeiten, verschiedene Arten von Inhalten in WordPress zu kategorisieren. Ich nehme an, dass du bereits mit den beiden gebräuchlichsten Beitragstypen vertraut bist: Beiträge und Seiten. Aber was du vielleicht nicht weißt, ist, dass WordPress auch mit ein paar anderen Beitragstypen geliefert wird.
Beitragstypen, die mit WordPress gebündelt geliefert werden
WordPress wird mit sieben Beitragstypen geliefert:
- Beiträge
- Seiten
- Anhänge
- Überarbeitungen
- Navigationsmenüs
- Benutzerdefiniertes CSS
- Änderungssätze
Die Chancen stehen gut, dass du noch nie von Changesets gehört hast und du benutzerdefiniertes CSS in deiner Website verwenden kannst, aber es ist dir nicht in den Sinn gekommen, dass es sich hierbei um Beitragstypen handeln könnte.
Für die meisten WordPress-Benutzer und -Entwickler sind die einzigen Beitragstypen, mit denen du dich befassen musst, die ersten fünf: Beiträge, Seiten, Anhänge, Revisionen und Navigationsmenüs.
Lass uns einen Blick auf jeden dieser Beitragstypen werfen, damit wir mehr über sie erfahren können.
WordPress Beitragstypen: Beiträge
Der „Beitrag“ ist der Beitragstyp, den du in WordPress am häufigsten verwenden wirst. Beiträge sind dynamische Inhalte: Sie sind so konzipiert, dass sie regelmäßig aktualisiert werden. Du kannst ihnen Kategorien und Tags hinzufügen, was bedeutet, dass sie in mehreren Archivseiten angezeigt werden, und sie werden auch auf deiner Homepage oder deiner Blog-Seite angezeigt. Normalerweise machen deine Beiträge den größten Teil des Inhalts deiner Website aus.
Hinweis: In WordPress bedeutet „Beitrag“ zwei Dinge. In der Datenbank ist ein Beitrag ein Beitrag von jedem Beitragstypen, also beinhaltet er Seiten, Anhänge und alles andere. Wenn die meisten von uns über Beiträge sprechen, meinen wir die Beiträge in unserem Blog, die zum Beitragstypen „Beitrag“ gehören.
WordPress Beitragstypen: Seiten
Wenn du bereits eine WordPress-Seite hast, sind Seiten der andere Inhaltstyp, mit dem du vertraut sein wirst. Es handelt sich um statische Inhalte, die so konzipiert sind, dass sie länger als Beiträge bleiben und Informationen über die Art der Dinge liefern, die sich nicht so oft verändern. Gute Beispiele sind deine Kontaktdaten oder die Seite „Über uns“ auf einer Business-Website.
Seiten können keine Kategorien oder Tags haben und sind nicht für die Anzeige auf Archivseiten ausgelegt. Stattdessen werden die Besucher über dein Navigationsmenü darauf zugreifen.
Hinweis: In der Internetsprache kann eine Seite jede Art von Seite auf deiner Website bedeuten. Als sich das Internet entwickelte, bestand es ausschließlich aus statischen Inhalten, die direkt durch das Schreiben von HTML kodiert werden mussten. Eine „Webseite“ kann also jede Art von Seite auf deiner Website sein, einschließlich einer statischen Seite in WordPress-Begriffen, einer Archivseite oder einem Beitrag. In diesem Artikel, wenn ich auf Seiten verweise, meine ich die Seite in WordPress Begriffen, d.h. eine statische Seite. Manchmal werde ich auf Archivseiten verweisen, aber es sind keine Seiten in dem Sinne, dass man eine Seite erstellt, um sie zu speichern. WordPress erledigt das für dich.
WordPress Beitragstypen: Anhänge
Eine Anlage ist ein Medienelement, das auf deine Website hochgeladen wurde. In der WordPress-Datenbank ist dies nicht die Mediendatei selbst, sondern die damit verbundenen Daten. So erhält jeder Anhang eine eindeutige ID und Metadaten wie Titel, Beschreibung, ALT-Text und mehr.
Jeder Anhang hat auch seine eigene Anhang-Seite mit einer eindeutigen URL. Die URL dazu findest du über den Bildschirm zur Medienbearbeitung für diesen Anhang:
Anhänge können jede Art von Upload sein: Bilder, Videos, PDF-Dateien und mehr. Du kannst sie über den Menüpunkt Media im WordPress-Administrationsmenü aufrufen und bearbeiten, oder du kannst sie während der Bearbeitung direkt auf Beiträge/Seiten hochladen. Jede Anlage, die du zu einem Beitrag hochlädst, steht dann zur Bearbeitung und Ansicht über das Medienmenü zur Verfügung.
WordPress Beitragstypen: Überarbeitungen
Jetzt kommen wir zu den etwas obskureren Beitragstypen.
Jedes Mal, wenn du eine neue Version eines Beitrags, einer Seite, eines Anhangs oder eines benutzerdefinierten Beitrags speicherst, erstellt WordPress eine Revision, um diese Version des Beitrags (oder der Seite, etc.) wiederzugeben.
Du kannst die Änderungen an jedem Beitrag oder jeder Seite deiner Website einsehen, indem du auf den entsprechenden Bearbeitungsbildschirm gehst und die Registerkarte Dokument auf der rechten Seite öffnest. Hier siehst du eine Benachrichtigung, die dir sagt, wie viele Revisionen dieser Beitrag hat. Unten siehst du einen Screenshot eines Beitrags, den ich bearbeite, der derzeit fünf Revisionen hat.
Wenn du nicht den Gutenberg-Editor verwendest, kannst du auf Revisionen zugreifen, indem du zum unteren Rand des Bearbeitungsbildschirms scrollst und hier eine Liste von ihnen findest:
Wenn du auf das Feld Revisionen klickst, gelangst du zu einem Bildschirm, der deine letzten beiden Versionen deines Beitrags anzeigt. Von hier aus kannst du die Revisionen überprüfen und zu einer früheren Version des Beitrags zurückkehren.
WordPress wird im Laufe der Zeit viele Änderungen für deine Website erstellen, was bedeutet, dass die Datenbank voll davon sein wird (hier ist Kinsta’s Anleitung, wie man Revisionen für eine schnellere Leistung handhabt)! Aber Revisionen sind ein Beitragstypen wie jeder andere, und sie werden auf die gleiche Weise gespeichert – mehr davon in Kürze.
WordPress Beitragstypen: Navigationsmenüs
Navigationsmenüs, genauer gesagt, die Elemente in deinen Navigationsmenüs, sind ebenfalls eine Art Beitrag.
Jeder Eintrag in deinem Navigationsmenü wird als Eintrag in der Datenbank gespeichert. Dank seiner Metadaten weiß WordPress, dass es sich um einen Navigationsmenüeintrag handelt, genau dort, wo er im Navigationsmenü erscheinen soll und wohin er verlinkt.
Du kannst Navigationsmenüelemente nicht so bearbeiten, wie du es von anderen Beitragstypen gewohnt bist. Stattdessen bearbeitest du sie über den Customizer oder den Menübildschirm.
WordPress Beitragstypen: Benutzerdefiniertes CSS
Wenn du benutzerdefiniertes CSS über den Customizer hinzufügst, wird deine Arbeit mit diesem benutzerdefinierten Beitragstypen gespeichert. Ein neuer Beitrag (vom Typ „custom CSS“) wird für benutzerdefiniertes CSS zu jedem Thema auf deiner Website gespeichert, und WordPress verwendet nur denjenigen für das aktuell aktive Thema.
WordPress Beitragstypen: Changesets
Changesets sind ein wenig wie Revisionen, aber anstatt auf Beiträge anzuwenden, gelten sie für den Customizer. Wenn du eine Änderung mit dem Customizer vornahmst, wird sie als Änderungssatz gespeichert, ähnlich wie ein Entwurf.
Nachdem wir nun das gesamte Spektrum der WordPress-Beitragstypen durchgearbeitet haben, lasse uns weitermachen, um mehr über die benutzerdefinierten WordPress-Beitragstypen zu erfahren.
Der Unterschied zwischen einem Beitrag und einem benutzerdefinierten Beitragstyp
Lass uns kurz zusammenfassen: Ein Beitrag kann eines von zwei Dingen sein.
Ein Beitragstypen ist eine Art von Beitrag (im weiteren Sinne), zu der ein bestimmter Inhalt gehört. Und ein „Beitrag“ ist ein Beitragstyp, ebenso wie „Seite“, „Anhang“ oder jeder andere benutzerdefinierte Beitrag, den du registrierst (ich weiß, es ist verwirrend, aber ich werde in einer Minute tiefer graben).
Andererseits ist dein benutzerdefinierter Beitragstypen keine Art von „Beitrag“ im Sinne eines Blog-Beiträge. Es ist eine Art von Beitrag im Sinne aller Beiträge (aller Beiträge), die in der Datenbank gespeichert sind.
WordPress Benutzerdefinierte Beitragstypen: Häufige Verwendungszwecke
Jetzt wissen wir also, was ein benutzerdefinierter Beitragstyp ist. Aber wann solltest du einen verwenden? Die Antwort ist, wann immer du Inhalte zu deiner Website hinzufügen möchtest, die nicht in einen der eingebauten Beitragstypen passen.
Einige gängige Beispiele für benutzerdefinierte Beitragstypen sind:
- Produkte für eine E-Commerce-Seite.
- Portfolio-Elemente oder Projekte für einen Portfolio-Seite.
- Karten für einen Karten-Seite.
- Veranstaltungen für eine Buchungs-Seite.
Dies sind einige der häufigsten Anwendungsfälle, aber sie sind keineswegs die einzigen. Mein Ratschlag bei der Entscheidung, ob du einen benutzerdefinierten Beitragstyp für jede neue Art von Inhalten verwenden möchtest, ist, dir diese Frage zu stellen:
Möchte ich meine neuen Inhalte auf der Hauptseite des Blogs oder als statische Seite anzeigen lassen, oder möchte ich sie auf einer separaten Archivseite anzeigen können?
In einigen Fällen könnte es ausreichen, eine Kategorie zu verwenden, um deine neuen Inhalte zu trennen: Vielleicht betreibst du einen Blog und möchtest Fallstudien einbinden, die du auf ihrer eigenen Seite anzeigen kannst (mit einer von dir erstellten „Case Study“-Kategorie) und auch im Hauptblog anzeigen kannst. Aber wenn du deinen neuen Inhalt von deinen Blog-Beiträge trennen möchtest, dann ist es sinnvoll, einen benutzerdefinierten Beitragstypen dafür zu erstellen.
Wie Beitragstypen von WordPress gespeichert werden
Beiträge eines benutzerdefinierten Beitragstyps werden auf die gleiche Weise gespeichert wie Standardbeiträge (und Seiten usw.). Lass uns einen genaueren Blick darauf werfen.
Deine WordPress-Seite verfügt über eine Reihe von Datenbanktabellen, um Inhalte und Einstellungen zu speichern. Die Mindestanzahl der Tabellen beträgt 12, aber deine Seite kann mehr haben, wenn sie Multisite betreibt oder wenn du ein Plugin installiert hast, das weitere Tabellen hinzufügt.
Im Screenshot oben siehst du, dass es zwei Tabellen gibt, die so aussehen, als hätten sie etwas mit Beiträgen zu tun: wp_Beiträge und wp_Beitragmeta.
Die Tabelle wp_Beiträge speichert den gesamten Inhalt deiner Beiträge, aller Beiträge. Es spielt also keine Rolle, ob es sich um einen Blog-Beitrag, eine Seite, eine Revision, einen Anhang oder einen benutzerdefinierten Beitragstypen handelt: Sie alle werden in dieser wp_Beiträge-Tabelle gespeichert.
WordPress weiß, welcher Beitragstyp jeder Beitrag ist, da er einen Wert im Feld Beitrag_type in der Tabelle wp_Beiträge hat. Dieser Wert entspricht dem Namen des Beitragstypen. Wenn du also einen neuen Blogbeitrag hinzufügst, fügt WordPress einen Beitrag zur Tabelle wp_Beiträge hinzu, mit dem Beitragstyp „Beitrag“. Und wenn du zum Beispiel einen benutzerdefinierten Beitragstypen namens „Produkt“ registrierst, erzeugt jedes neu erstellte Produkt eine Zeile in der Tabelle wp_Beiträge mit dem Wert „Produkt“ im Feld Beitrag_type.
Die Tabelle wp_Beitragmeta dient zum Speichern von Metadaten über dein Beiträge. Es hat vier Felder:
- meta_id: die ID dieses Elements in der wp_Beitragmeta-Tabelle.
- Beitrag_id: der Beitrag, dem dieses Metadatenelement entspricht. Ein Beitrag kann mehrere Zeilen in der Tabelle wp_Beitragmeta haben.
- meta_key: der Schlüssel für diesen speziellen Typ von Metadaten. Beispielsweise könnte für eine statische Seite ein potenzieller Schlüssel page_template sein, der aufzeigen würde, welche Seitenvorlage verwendet wird.
- meta_value: der Wert für das Feld. Wenn eine Seite (um dieses Beispiel noch einmal zu verwenden) die Standardseitenvorlage verwendet, wäre der meta_value hier’default‘.
Daher sind die Arten von Metadaten, die für einen bestimmten Beitrag gespeichert werden, je nachdem, um welche Art von Beitrag es sich handelt, unterschiedlich.
Du musst dir keine Sorgen machen, welche Daten in wp_Beiträge und welche in wp_Beitragmeta gespeichert sind: aber es ist nützlich zu verstehen, dass alle Beitragstypen an der gleichen Stelle gespeichert sind, da WordPress also mit allen auf die gleiche Weise arbeiten kann.
Wie benutzerdefinierte Buchungsarten mit benutzerdefinierten Taxonomien und benutzerdefinierten Feldern interagieren
Bevor wir uns ansehen, wie du einen benutzerdefinierten Beitragstypen in WordPress registrieren würdest, laß uns herausfinden, wie ein benutzerdefinierter Beitragstypen mit anderen benutzerdefinierten Content-Typen, nämlich benutzerdefinierten Taxonomien und benutzerdefinierten Feldern, interagieren wird.
Benutzerdefinierte Taxonomien
Taxonomien in WordPress werden verwendet, um Beiträge eines beliebigen Beitragstyps zu kategorisieren. Für Standardpositionen werden als Taxonomien Kategorien und Tags verwendet.
Wenn du deinen benutzerdefinierten Beitragstypen registrierst, kannst du wählen, ob du ihm eine eine beliebige existierende Taxonomie oder Taxonomien zuordnen möchtest.Du kannst die Taxonomie „Kategorie“ bei der Registrierung der Taxonomie hinzufügen. Ich werde dir zeigen, wie du das in Kürze machen kannst, wenn ich die Technik zur Erstellung eines benutzerdefinierten Beitragstypen demonstriere.
Alternativ kannst du für deinen benutzerdefinierten Beitragstyp völlig neue Taxonomien erstellen, was ebenfalls ein gängiger Ansatz ist.
Wenn du zum Beispiel einen Beitragstyp „Produkt“ für eine E-Commerce-Site erstellst, kannst du eine Taxonomie „Abteilung“ erstellen, um deine Produkte in Abteilungen in deinem Geschäft zu sortieren.
Wenn du einen Beitragstyp „Event“ erstellst, kannst du eine Taxonomie des Beitragstyps „Eventtyp“ erstellen, die angeben kann, ob es sich um ein Konzert, eine Dichterlesung oder einen Comedy-Abend handelt.
Die Taxonomien, die du erstellst, liegen bei dir und hängen davon ab, wie du deine Beiträge aus deinem benutzerdefinierten Beitragstyp sortieren und anzeigen möchtest.
Benutzerdefinierte Felder
Ein weiterer benutzerdefinierter Content-Typ, den du in WordPress hast, sind benutzerdefinierte Felder, auch bekannt als Beitrag-Metadaten. Benutzerdefinierte Felder sind zusätzliche Metadaten, die du zu jedem Beitrag hinzufügen kannst, solange der Beitragstypen sie unterstützt. Wenn du einen benutzerdefinierten Beitragstyp registrierst, kannst du in diese Zeile die Unterstützung für benutzerdefinierte Felder aufnehmen:
supports => array( 'custom-fields' );
Dies wird als Array übergeben, so dass du Unterstützung für mehrere Optionen hinzufügen kannst.
Wenn du also Metadaten zu deinem benutzerdefinierten Beitragstypen hinzufügen möchtest, wie z.B. Größen oder Farben in einem Bekleidungsgeschäft mit dem Beitragstypen „Produkt“, würdest du dafür ein benutzerdefiniertes Feld verwenden.
Benutzerdefinierte Felder unterscheiden sich von benutzerdefinierten Taxonomien, da du sie nicht für die Ausgabe einer Archivseite verwenden würdest.
Hier ist ein Beispiel für ein Bekleidungsgeschäft. Du hättest eine Archivseite für jedes Beispiel einer „Abteilung“ Taxonomie, z.B. „Frauen“, „Männer“ etc. Stelle dir vor, du hast auch ein benutzerdefiniertes Feld namens „Größe“. Du würdest keine Archivseite für jede Größe erstellen, da sie nicht etwas ist, was deine Kunden erwarten würden.
Befolge diese Regel, um festzustellen, ob du eine benutzerdefinierte Taxonomie oder ein benutzerdefiniertes Feld verwenden musst, um weitere Daten zu deinem Beitrag hinzuzufügen: Musst du sie in einer Archivseite anzeigen?
Ich werde dir später zeigen, wie du Archivseiten für deinen benutzerdefinierten Beitragstyp und deine benutzerdefinierten Taxonomien ausgeben kannst.
Wie man einen benutzerdefinierten Beitragstyp mit einem Plugin hinzufügt
So weißt du, was benutzerdefinierte Beitragstypen sind und du weißt, dass du einen für deine Website brauchst: Wie fügt man ihn hinzu?
Es gibt zwei Möglichkeiten: durch die Verwendung eines Plugins und durch die manuelle Programmierung. Beginnen wir mit der Plugin-Route.
Es gibt zwei Arten von Plugins, mit denen du einen benutzerdefinierten Beitragstyp registrieren kannst: Der erste registriert einen benutzerdefinierten Beitragstyp, um Funktionen hinzuzufügen, die mit dem Plugin geliefert werden, und der zweite bietet dir eine Schnittstelle, mit der du deinen eigenen Beitragstyp erstellen kannst.
Das erste Beispiel beinhaltet eine Vielzahl von Plugins, darunter E-Commerce-Plugins, Event-Plugins und mehr. Beginnen wir mit einem der beliebtesten WordPress-Plugins, WooCommerce.
Wie man WooCommerce verwendet, um benutzerdefinierte Beitragstypen zu registrieren
WooCommerce ist ein Beispiel für ein Plugin, das einen benutzerdefinierten Beitragstypen registriert, um zu funktionieren. In diesem Fall handelt es sich um den Beitragstyp „Produkt“.
WooCommerce registriert auch einige benutzerdefinierte Taxonomien und benutzerdefinierte Felder, damit du deinen Shop organisieren kannst, einschließlich Produktkategorien und Produktkennzeichnungen. Diese unterscheiden sich von den Kategorien und Tags, die du für deine Blogbeiträge verwenden würdest.
So verwendest du das Plugin für den Veranstaltungskalender, um benutzerdefinierte Beitragsarten zu registrieren
Das Plugin für den Veranstaltungskalender ist ein weiteres Plugin, das einen benutzerdefinierten Beitragstyp verwendet. In diesem Fall handelt es sich um den Beitragstyp „Event“.
Das Plugin fügt eine Taxonomie hinzu, die für Ereignisse eindeutig ist: “ Event-Kategorie“. Es wendet normale Tags auch auf Events an, so dass du die gleichen Tags verwenden kannst, die du für deine Blog-Beiträge verwendest.
Wie man WP Google Maps verwendet, um benutzerdefinierte Beitragstypen zu registrieren
Genau wie WooCommerce und der Veranstaltungskalender ist WP Google Maps ein WordPress-Karten-Plugin, das einen benutzerdefinierten Beitragstyp für deine Karten registriert.
Der Beitragstyp „Map“ funktioniert anders als der Produkt- oder Event-Beitragstyp im vorherigen Plugin, da du nicht eine Archivseite aller deiner Maps anzeigen würdest: Stattdessen gibt dir das Plugin für jede von dir erstellte Map einen Shortcode, den du in einen Beitrag oder eine Seite deiner Site einbindest. Aber obwohl du Karten nicht so anzeigen kannst, wie du es von anderen Beitragstypen gewohnt bist, ist es immer noch ein Beitragstypen.
Wie man das Custom Beitrag Type UI Plugin verwendet
Wenn du deinen eigenen benutzerdefinierten Beitragstyp anstelle eines, der Teil der breiteren Funktionalität eines Plugins wie WooCommerce ist, registrieren möchtest, kannst du ein Plugin verwenden, das dir eine Schnittstelle bietet, die es dir leicht macht, einen benutzerdefinierten Beitragstyp zu registrieren.
Ein solches Plugin ist das Custom Post Type UI Plugin.
Mit diesem Plugin kannst du deine eigenen benutzerdefinierten Beitragstypen über die Admin-Bildschirme registrieren, ohne dass du Code schreiben musst.
Es gibt dir eine Reihe von Bildschirmen, mit denen du alle Elemente der Registrierung eines Beitragstypen hinzufügen kannst, die du bei Verwendung der Funktion register_post_type()
hinzufügen würdest. Um einen neuen Beitragstypen mit dem Plugin hinzuzufügen, geh zu CPT IU > Add/Edit Post Types.
Von hier aus kannst du einen neuen Beitrag hinzufügen oder bestehende Beiträge bearbeiten, die du registriert hast.
Du kannst die Einstellungen für den Beitragstypen bearbeiten oder sie bei den Standardeinstellungen belassen. Eine vollständige Dokumentation zu allen Einstellungen und Optionen für einen Beitragstypen findest du im WordPress Codex.
Du kannst das Plugin auch verwenden, um eine benutzerdefinierte Taxonomie zu registrieren und diese deinem neuen Beitragstyp oder einem bestehenden Beitragstyp zuzuweisen. Und wenn du das Plugin verwendest, um einen Beitragstyp zu registrieren, kannst du ihm dabei alle vorhandenen Taxonomien zuordnen.
So verwendest du das Pods Plugin, um benutzerdefinierte Beitragstypen zu registrieren
Das Pods Plugin ist ein weiteres Plugin, das dir eine Schnittstelle bietet, mit der du einen benutzerdefinierten Beitragstyp registrieren kannst, ohne Code zu schreiben.
Mit den Pods kannst du auch deine bestehenden Beitragstypen erweitern. So kannst du einem vorhandenen Beitragstyp oder einer bestehenden Taxonomie zusätzliche Felder hinzufügen und deren Einstellungen bearbeiten.
Das Pods-Plugin verwendet einen Beitragstypen („pod“), um alle deine Anpassungen zu speichern, und ermöglicht es dir auch, deine eigenen Beitragstypen ein wenig wie das Custom Beitrag Type UI-Plugin zu registrieren, aber mit einer Schnittstelle, die dich durch den Prozess führen soll. Das bedeutet, dass das Plugin den Prozess vereinfachen kann, aber es fügt viel mehr Code zu deiner Website (und Daten zu deiner Datenbank) hinzu, als wenn du den Beitragstyp selbst kodiert hättest.
Alternativ, wenn du kein Plugin installieren möchtest, um den Prozess der Registrierung deines Beitragstypen zu verwalten, kannst du es selbst kodieren.
So registrierst du deinen eigenen benutzerdefinierten Beitragstypen in WordPress
Wenn du mit dem Schreiben von Code vertraut bist, kannst du die Funktion register_post_type()
nutzen, um deinen benutzerdefinierten Beitragstyp zu registrieren. Dies ist der effizienteste Weg, um dies zu erreichen.
Best Practices sagen uns, dass wir den Code für einen benutzerdefinierten Beitragstypen in einem Plugin und nicht in deinem Design platzieren sollen. Dies liegt daran, dass du, wenn du dein Thema in Zukunft ändern solltest, den Beitragstypen und alle Beiträge, die du mit diesem Beitragstypen erstellt hast, nicht verlieren willst. Es bedeutet auch, dass, wenn du dein Thema in der Zukunft aktualisierst, du deinen Beitragstypen nicht verlierst.
Lass uns die Schritte durchgehen, um deinen eigenen benutzerdefinierten Beitragstypen in WordPress zu registrieren.
Erstellen deines Plugins
Der erste Schritt ist die Erstellung deines Plugins. Füge im Ordner wp-content/plugins deiner Entwicklungs- oder Staging-Seite (noch nicht deiner Live-Seite) einen Ordner für dein Plugin hinzu. Füge in diesem Ordner eine PHP-Datei hinzu. Ich nenne meine kinsta-register-Beitragstype.php an.
Tipp: Ich mag es immer ein Plugin in einem Ordner zu erstellen, anstatt nur eine Plugin-Datei zum wp-content/plugins Ordner hinzuzufügen. Auf diese Weise, wenn ich weitere Dateien zu meinem Plugin hinzufügen muss, wie z.B. Include-Dateien, Skripte oder Styles, habe ich bereits einen Ordner, in dem ich sie speichern kann.
Füge nun in deiner neuen PHP-Datei den auskommentierten Text für dein Plugin hinzu:
<?php
/*
Plugin Name: Register Custom Post Types
Plugin URI: http://rachelmccollin.com
Description: Plugin to register the book post type
Version: 1.0
Author: Rachel McCollin
Author URI:http://rachelmccollin.com
Textdomain: kinsta
License: GPLv2
*/
Dies teilt WordPress (und dem Benutzer) einige wichtige Informationen über das Plugin mit:
- Wie es genannt wird
- Wo du mehr Informationen findest
- Was es bewirkt
- Die Versionsnummer
- Wer hat es entwickelt und wo kannst du mehr darüber erfahren?
- Die Textdomäne für die Internationalisierung
- Die Lizenz, die immer unter der GPL stehen sollte.
So ist dein Plugin nun eingerichtet und wenn du willst, kannst du es in den Admin-Bildschirmen aktivieren. Es wird noch nichts bewirken, wenn du es tust.
Einrichten der Funktion für deinen Beitragstypen
Beginnen wir nun mit der Erstellung der Funktion zur Registrierung deines Beitragstyps. In meinem Beispiel werde ich einen Beitragstypen namens „book“ erstellen, da dies für eine imaginäre Buchbesprechungsseite gilt. Was du verwendest, wird natürlich anders sein und hängt davon ab, wofür du deinen eigenen Beitragstyp verwendest.
Füge unter dem auskommentierten Text diesen hinzu:
function kinsta_register_post_type() {
}
add_action( 'init', 'kinsta_register_post_type' );
Diese Funktion enthält den gesamten Code für deinen benutzerdefinierten Beitragstyp. Vielleicht möchtest du seinen Namen ändern, um ein eigenes Präfix anstelle von kinsta_ hinzuzufügen. Es ist ratsam, ein Präfix für alle deine Funktionen zu verwenden, damit du nicht mit dem Namen einer Funktion kollidierst, die von deinem Theme oder den anderen Plugins, die du gerade verwendest, bereitgestellt wird.
Der Rest des Codes wird in die Klammern dieser Funktion eingefügt.
Definieren der Beschriftungen für deinen benutzerdefinierten Beitragstypen
Jetzt ist es an der Zeit, die Bezeichnungen für deinen benutzerdefinierten Beitragstypen zu definieren. Füge dies in diesen geschweiften Klammern hinzu:
$labels = array(
'name' => __( ‘Books’, ‘kinsta’ ),
'singular_name' => __( 'Book', ‘kinsta’ ),
'add_new' => __( 'New Book', ‘kinsta’ ),
'add_new_item' => __( 'Add New Book', ‘kinsta’ ),
'edit_item' => __( 'Edit Book', ‘kinsta’ ),
'new_item' => __( 'New Book', ‘kinsta’ ),
'view_item' => __( 'View Books', ‘kinsta’ ),
'search_items' => __( 'Search Books', ‘kinsta’ ),
'not_found' => __( 'No Books Found', ‘kinsta’ ),
'not_found_in_trash' => __( 'No Books found in Trash', ‘kinsta’ ),
);
Du musst deinen ändern, wenn dein benutzerdefinierter Beitragstypen nicht „Buch“ ist. Es gibt mehr Etiketten, die du verwenden kannst, aber ich finde, dass die oben genannten in der Regel ausreichend für meine Bedürfnisse sind.
Beachte, dass ich die Internationalisierung in meinen Labels verwende, damit sie für die Benutzer in die Landessprache übersetzt werden.
Definition der Argumente für deinen benutzerdefinierten Beitragstypen
Der nächste Schritt ist die Definition der Argumente, von denen eines die Reihe von Labels sein wird, die wir bereits hinzugefügt haben.
Unter den Etiketten und noch immer in den Klammern, füge dies hinzu:
$args = array(
'labels' => $labels,
'has_archive' => true,
'public' => true,
'hierarchical' => false,
'supports' => array(
'title',
'editor',
'excerpt',
'custom-fields',
'thumbnail',
'page-attributes'
),
'taxonomies' => 'category',
'rewrite' => array( 'slug' => 'book' ),
‘show_in_rest’ => true
);
Werfen wir einen Blick darauf, was diese alle bewirken.
- Das Argument labels ist das Array der Labels, das wir bereits definiert haben.
'has_archive' => true
aktiviert ein Beitragstypen Archive für den benutzerdefinierten Beitragstypen. Dies ist standardmäßig auf false gesetzt, also überschreibe ich es gerne und gebe mir die Möglichkeit, ein Beitrag Type Archive zu verwenden (das ich dir in Kürze zeigen werde).'public' => true
ermöglicht es, den Beitragstyp in die Suchergebnisse und in benutzerdefinierte Abfragen aufzunehmen. Auch hier ist die Voreinstellung false und das ist etwas, das ich gerne überschreibe.- Der Wert „hierarchisch“ hängt davon ab, wie du deinen benutzerdefinierten Beitragstyp verwenden mö Wenn du dies auf true setzt, dann verhält sich der Beitragstypen wie Seiten, mit einer Hierarchie möglich und Eltern- und Kind-Beiträge eines beliebigen Beiträge deines Beitragstypen. Wenn du es auf false setzt, verhält es sich wie ein Beitrag, ohne Hierarchie.
- Das Array’supports‘ definiert eine Reihe von Funktionen von Beitragstypen, die du mit dieser Beitragstyp-Unterstützung nutzen kannst. Ich möchte sicherstellen, dass Funktionen wie vorgestellte Bilder und benutzerdefinierte Felder aktiviert sind.
- Das Argument „Taxonomien“ definiert die vorhandenen Taxonomien, die für diesen Beitragstyp gelten. Hier verwende ich die Taxonomie der Kategorie. Wenn du stattdessen eine benutzerdefinierte Taxonomie verwenden möchtest und sie noch nicht registriert hast, überspringe einfach diese Zeile und registriere die Taxonomie dann für den Beitragstypen. Wenn du bereits eine benutzerdefinierte Taxonomie registriert hast, kannst du sie über diese Zeile dem Beitrag hinzufügen.
- Ich verwende das Argument’rewrite‘, weil ich der Taxonomie einen anderen Namen geben werde als das, was ich für ihren Slug verwenden mö Ich werde dies in Kürze näher erläutern.
'show_in_rest' => true
stellt sicher, dass der Beitragstypen für die REST-API und die Gutenberg-Schnittstelle zur Verfügung steht. Es ist standardmäßig falsch, was für mich keinen Sinn macht – ich möchte, dass alle meine Beitragstypen die gleiche Bearbeitungsoberfläche verwenden!
Das sind also alle Argumente. Aber wir haben die Beitragart noch nicht registriert. Zeit, das in Ordnung zu bringen.
Hinzufügen der Funktion register_post_type()
Der letzte Schritt ist, all dies zusammen in die Funktion register_post_type()
zu ziehen.
Unterhalb deiner Argumente und immer noch innerhalb der Klammern, füge dies hinzu:
register_post_type( ‘kinsta_book', $args );
Dies registriert den Beitragstyp’kinsta_book‘ mit den Argumenten, die wir bereits definiert haben.
Jetzt wirst du vielleicht leichter verstehen, warum ich das Argument „rewrite“ schon einmal verwendet habe. Ich mag es den Namen meiner Beitragstypen ein Präfix hinzufügen, damit ich sicher sein kann, dass sie nicht mit Beitragstypen kollidieren, die von Drittanbieter-Plugins hinzugefügt wurden, aber ich möchte nicht, dass das Präfix veröffentlicht wird.
Wenn WordPress standardmäßig ein Beispiel für deinen Beitragstyp anzeigt, verwendet es den Namen des Beitragstyps in der URL. So hätte mein Buch mit dem Namen’My Wonderful Book‘ eine URL von mysite.com/kinsta_book/my-wonderful-book. Das möchte ich nicht, also verwende ich das Argument „umschreiben“, um die URL auf mysite.com/book/my-wonderful-book zu ändern. Sieht viel besser aus, was?
Speichere nun deine Datei und aktiviere dein Plugin im WordPress-Administrator. Du wirst feststellen, dass ein neuer Beitragstypen im Admin-Menü erschienen ist.
Der Beitragstyp ist nun registriert und steht dir zur Verwendung auf deiner Website zur Verfügung. Nimm dir etwas Zeit, um einige Beiträge hinzuzufügen (Beiträge deines benutzerdefinierten Beitragstyps erinnern, nicht Blogbeiträge – WordPress kann manchmal verwirrend werden!) und dann schauen wir uns an, wie du deine Beiträge von deinem benutzerdefinierten Beitragstypen am Frontend deiner Website anzeigen kannst.
Wie man WordPress Custom Beitragstypen in deiner Website anzeigt
Die meisten benutzerdefinierten Beitragstypen, die du zu deiner Website hinzufügst, funktionieren wie Beiträge, was bedeutet, dass sie so konzipiert sind, dass sie in Archivseiten angezeigt werden. Vielleicht verwendest du eine benutzerdefinierte Taxonomie, um sie anzuzeigen, oder vielleicht hast du die Taxonomie „Kategorie“ hinzugefügt, wie ich es getan habe.
Alternativ, wenn du ein Plugin wie WooCommerce verwendet hast, das benutzerdefinierte Beitragstypen hinzufügt, um spezifische Funktionen zu deiner Website hinzuzufügen, dann kann dieses Plugin einige spezifische Seiten (wie die „Shop2-Seite) hinzufügen, die dazu bestimmt sind, deinen benutzerdefinierten Beitragstyp auszugeben.
Die vier Optionen, die du hast, um benutzerdefinierte Beitragsarten anzuzeigen, sind:
- Anzeigen des einzelnen Beitrags (z.B. des Buches, in meinem Beispiel)
- Anzeige des vollständigen Beitragstypen-Archivs mit allen aufgeführten Büchern.
- Anzeigen eines benutzerdefinierten Taxonomiearchivs unter Verwendung einer Taxonomie, die du für deinen benutzerdefinierten Beitragstyp registriert hast.
- Integration von Beiträgen aus dem benutzerdefinierten Beitragstypen (z.B. Bücher) in das Archiv einer bestehenden Taxonomie wie z.B. „Kategorie“ oder in die Hauptblogseite.
Betrachten wir die einzelnen Punkte nacheinander.
Achtung! Wenn du zu irgendeinem Zeitpunkt in diesem Prozess nicht auf die Archive oder einzelnen Beiträge für deinen benutzerdefinierten Beitragstyp zugreifen kannst, liegt das daran, dass WordPress die Permalinks noch nicht für sie geschrieben hat. Um dies zu beheben, gehe zu Einstellungen > Permalinks und klicke einfach auf die Schaltfläche Änderungen speichern. Dadurch wird WordPress angewiesen, nach neuen Beitragstypen zu suchen und die URLs für diese zu erstellen.
Anzeigen des Archivs der Buchungsarten
Die erste Option, die du hast, ist, eine Archivseite aller Beiträge in deinem benutzerdefinierten Beitragstypen-Archiv zu erstellen.
Wenn du bei der Registrierung des Beitragstypen „has_archive“ als wahr definiert hast, generiert WordPress automatisch eine Archivseite für deinen Beitragstypen. Du kannst dies mit dem Customizer zu deinem Navigationsmenü hinzufügen.
Hinzufügen deines Beitragstypen Archive zum Menü
Öffne den Customizer und wähle die Option Menüs. Wähle dein Hauptmenü und klicke auf die Schaltfläche Add items, um zusätzliche Elemente zu deinem Menü hinzuzufügen.
Wähle deinen Beitragstyp aus den angezeigten Optionen und klicke nicht auf den Pfeil nach unten rechts neben dem Namen. Dies zeigt eine Liste mit allen Beiträgen, die du hinzugefügt hast, sowie eine Option, die in meinem Fall All Books genannt wird. Klicke darauf und es wird zu deinem Menü hinzugefügt.
Wenn du dann auf diesen Punkt im Menü klickst, kannst du die Bezeichnung bearbeiten. Ich nenne meine lieber nicht „Alle Bücher“, sondern nur „Bücher“.
Beachte, dass du dies nur über den Customizer tun kannst – dies ist auf dem Menübildschirm nicht möglich. Stelle also sicher, dass du den Customizer verwendest, um dein benutzerdefiniertes Beitragstype-Archiv zu deinem Menü hinzuzufügen.
Anpassen des Archivs der Buchungsarten
WordPress verwendet die Vorlagenhierarchie, um festzustellen, welche Vorlagendatei in deinem Design verwendet werden soll, um das Archiv des benutzerdefinierten Beitragstyps anzuzeigen.
Wenn dein Design eine Datei archive.php hat, wird es diese verwenden, und wenn nicht, wird es index.php verwenden.
Wenn du die Art und Weise bearbeiten möchtest, wie das benutzerdefinierte Archiv des Beitragstyps ausgegeben wird, dann kannst du eine Vorlagendatei für dein benutzerdefiniertes Archiv des Beitragstyps erstellen.
Für einen bestimmten benutzerdefinierten Beitragstyp musst du eine Vorlagendatei namens archive-$Beitragstype.php erstellen, wobei $Beitragstype der Name deines Beitragstyps ist. Also für meine Bücher Beitragstypen, würde ich eine Datei namens archive-kinsta_book.php erstellen.
Der einfachste Weg, diese Datei zu erstellen, ist, ein Duplikat der Datei archive.php in deinem Design zu erstellen. Benenne es um und bearbeite es, so dass es dein Beitragstypen-Archiv so anzeigt, wie du es möchtest.
Einzelne Beiträge anzeigen
Einzelne Beiträge, die mit einem benutzerdefinierten Beitragstyp erstellt wurden, werden auch mit der ersten relevanten Vorlagendatei angezeigt, die in der Vorlagenhierarchie gefunden wurde.
Du kannst mit einzelnen Beiträgen etwas weiter gehen als mit Archiven: Du kannst nicht nur eine Vorlagendatei für den Beitragstyp erstellen (single-$Beitragstype.php), sondern auch eine Datei für einen bestimmten Beitrag dieses Beitragstyps mit dem Slug für diesen Beitrag erstellen (single-$Beitragype-slug.php).
Wenn ich also Great Expectations zu meiner Buchbesprechungssite hinzugefügt habe, könnte ich eine Datei für alle Buchbesprechungen namens single-kinsta_book.php erstellen, oder ich könnte eine Zieldatei für dieses Buch namens single-kinsta_book-great-expectations.php erstellen. Wenn ich keine dieser Dateien erstellen würde, würde WordPress standardmäßig single.php oder (wenn das nicht vorhanden wäre) singular.php oder index.php verwenden.
Hinzufügen von benutzerdefinierten Beitragstypen zur Hauptblogseite
Standardmäßig wird deine Hauptblog-Seite nur den Beitragstypen „Beitrag“ enthalten. Aber was wäre, wenn du auch deinen benutzerdefinierten Beitragstypen auf dieser Seite einbinden wolltest, vermischt mit den Blog-Beiträge?
Du kannst dies tun, indem du den pre_get_posts hook in WordPress benutzt.
Füge das, in deinem Plugin, in dem du den Beitragstypen registriert hast, hinzu:
<?php
function kinsta_books_on_blog_page() {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( ‘post_type', array( ‘post’, ‘kinsta_book’ );
}
}
add_action( 'pre_get_posts', 'kinsta_books_on_blog_page' ); ?>
Dadurch wird überprüft, ob wir uns auf der Startseite befinden (das ist die Blog-Seite, auch wenn dies nicht die Startseite deiner Website ist) und ob die Hauptabfrage ausgeführt wird (z.B. weil du dies nicht in einem Widget tun willst). Wenn ja, fügt es sowohl Beiträge als auch Bücher zur Abfrage hinzu.
Beachte, dass du sowohl den Beitragstypen als auch den neuen Beitragstypen in das Array aufnehmen musst.
Zusammenfassung
WordPress benutzerdefinierte Beitragstypen sind das Feature, das es von einer einfachen Blogging-Plattform zu einem echten Content Management System macht. Mit ihnen kannst du komplexe, maßgeschneiderte Websites erstellen, die als Geschäfte, Referenz-Hubs, Medien-Websites oder alles, was du brauchst, fungieren können.
Du kannst benutzerdefinierte Beitragstypen zu deiner WordPress-Seite auf eine von drei Arten hinzufügen. Du kannst ein Plugin wie WooCommerce verwenden, das einen benutzerdefinierten Beitragstyp registriert, der sich auf die Funktionalität des Plugins bezieht. Du kannst ein Plugin wie CPT UI oder Pods verwenden, um deine eigenen benutzerdefinierten Beitragstypen hinzuzufügen. Oder du kannst dein eigenes Plugin schreiben und die Funktion register_post_type()
verwenden, um den Beitragstyp mit einem Code zu registrieren. Welche Methode du auch verwendest, du kannst viel mehr von deiner WordPress-Seite bekommen.
Schreibe einen Kommentar