WordPress kommt mit fünf Standard-Post-Typen: postpageattachmentrevision, und menu.

Während der Entwicklung Ihres Plugins kann es sein, dass Sie Ihren eigenen spezifischen Inhaltstyp erstellen müssen: zum Beispiel Produkte für eine E-Commerce-Website, Aufgaben für eine E-Learning-Website oder Filme für eine Rezensions-Website.

Mit Custom Post Types können Sie Ihren eigenen Beitragstyp registrieren. Sobald ein benutzerdefinierter Beitragstyp registriert ist, erhält er einen neuen Verwaltungsbildschirm auf oberster Ebene, der zum Verwalten und Erstellen von Beiträgen dieses Typs verwendet werden kann.

Um einen neuen Beitragstyp zu registrieren, verwenden Sie die Funktion register_post_type().

Achtung:
Wir empfehlen, benutzerdefinierte Beitragstypen in ein Plugin und nicht in ein Theme zu integrieren. Dadurch wird sichergestellt, dass Benutzerinhalte portabel bleiben, auch wenn das Theme geändert wird.

Das folgende Minimalbeispiel registriert einen neuen Post-Type, Products, der in der Datenbank als wporg_product identifiziert wird.

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __('Products', 'textdomain'),'singular_name' => __('Product', 'textdomain'),),'public' => true,'has_archive' => true,));}add_action('init', 'wporg_custom_post_type');

Vollen Quellcode ausklappenVollen Quellcode einklappen

Bitte besuchen Sie die Referenzseite für register_post_type() für die Beschreibung der Argumente.

Warnung:
Sie müssen register_post_type() vor dem admin_init-Hook und nach dem after_setup_theme-Hook aufrufen. Ein guter Hook ist der init Action-Hook.

Best Practices für die Namensgebung

Es ist wichtig, dass Sie Ihren Post-Type-Funktionen und Bezeichnern ein kurzes Präfix voranstellen, das Ihrem Plugin, Theme oder Ihrer Website entspricht.

Warnung:
Stellen Sie sicher, dass Ihr benutzerdefinierter Post-Type-Bezeichner nicht länger als 20 Zeichen ist, da die post_type-Spalte in der Datenbank derzeit ein VARCHAR-Feld mit dieser Länge ist.

Warnung:
Um die Vorwärtskompatibilität zu gewährleisten, verwenden Sie nicht wp_ als Bezeichner – er wird vom WordPress-Kern verwendet.

Warnung:
Wenn Ihr Bezeichner zu generisch ist (zum Beispiel: „product„), kann es zu Konflikten mit anderen Plugins oder Themes kommen, die denselben Bezeichner verwenden.

Hinweis:
Doppelte Bezeichner für Beitragstypen aufzulösen ist nicht möglich, ohne einen der konfligierenden Beitragstypen zu deaktivieren.

Top

URLs #URLs

Ein benutzerdefinierter Beitragstyp erhält einen eigenen Slug innerhalb der URL-Struktur der Website.

Ein Beitrag vom Typ wporg_product verwendet standardmäßig die folgende URL-Struktur: http://example.com/wporg_product/%product_name%.

wporg_product ist der Slug Ihres benutzerdefinierten Beitragstyps und %product_name% ist der Slug Ihres speziellen Produkts.

Der endgültige Permalink wäre: http://example.com/wporg_product/wporg-is-awesome.

Sie können den Permalink auf der Bearbeitungsseite für Ihren benutzerdefinierten Beitragstyp sehen, genau wie bei den Standard-Posttypen.

Ein benutzerdefinierter Slug für einen benutzerdefinierten Beitragstyp

Um einen benutzerdefinierten Slug für den Slug Ihres benutzerdefinierten Beitragstyps zu setzen, müssen Sie nur einen Schlüssel müssen Sie nur ein Schlüssel => Wertepaar zum rewrite Schlüssel im register_post_type() Argumente-Array hinzufügen.

Beispiel:

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __( 'Products', 'textdomain' ),'singular_name' => __( 'Product', 'textdomain' ),),'public' => true,'has_archive' => true,'rewrite' => array( 'slug' => 'products' ), // my custom slug));}add_action('init', 'wporg_custom_post_type');

Vollen Quellcode ausklappenVollen Quellcode einklappen

Das obige Beispiel ergibt die folgende URL-Struktur: http://example.com/products/%product_name%

Warnung:
Die Verwendung eines generischen Slugs wie products kann potenziell zu Konflikten mit anderen Plugins oder Themes führen. Versuchen Sie daher, einen Slug zu verwenden, der spezifischer für Ihren Inhalt ist.

Hinweis:
Im Gegensatz zu den benutzerdefinierten Post-Type-Identifikatoren kann das Problem des doppelten Slugs einfach gelöst werden, indem der Slug für einen der konfliktierenden Post-Types geändert wird.

Wenn der Plugin-Autor einen apply_filters()-Aufruf auf die Argumente gelegt hat, kann dies programmatisch erfolgen, indem die über die register_post_type()-Funktion übergebenen Argumente überschrieben werden.

Schreibe einen Kommentar

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