WordPress Custom Post Types – die komplette Einführung

WordPress Custom Post Types

Als ich das erste Mal mit Custom Post Types in WordPress in Kontakt gekommen bin, muss ich ganz ehrlich zugeben, dass ich das Prinzip nicht verstanden habe. Ich habe das Thema Custom Post Types dann erst mal beiseite geschoben, um mich anderen, in meinen Augen zuzuwenden.

Wenn ich damals gewusst, wie mächtig Custom Post Types in WordPress sind, hätte ich mich wahrscheinlich mit Feuereifer daran gesetzt, das Prinzip so schnell wie möglich zu verstehen.

Um dir den gleichen Fehler zu ersparen, erkläre ich dir in diesem Artikel das Thema großteils auf einfache Weise. So kannst du dieses Werkzeug für deine eigene WordPress Website schnell und einfach selbst einsetzen.

Was sind WordPress Custom Post Types?

WordPress verfügt über eine ganze Reihe von eigenen Posttypen. Platt gesagt, sind damit Beitragsarten gemeint. Die wichtigsten zwei Beitragsart in sind die Beiträge selbst und die Seiten.

Custom Post Types versetzen dich nun aber in die Lage, deine komplett eigenen Beitragsarten zu schaffen und zwar so wie du sie haben möchtest.

Wenn du zum Beispiel Kochrezepte auf deiner Website veröffentlichen möchtest, wäre es ja total unübersichtlich, wenn diese Kochrezepte bei den normalen Beiträgen stehen würden. Du hättest dann auf der Beitragsübersichtsseite nicht nur deine Rezepte, sondern auch alle anderen Beiträge, die du auf deiner Website veröffentlicht.

Mit Custom Post Types gehört diese Unübersichtlichkeit der Vergangenheit an. So kannst du zum Beispiel für die Kochrezepte einen eigenen Custom Post Types mit Namen Rezepte anlegen und dieser bekommt im Administrationsbereich von WordPress seinen eigenen Menüpunkt.

Ein weiterer Vorteil von Custom Post Types liegt darin, dass WordPress automatisch über 60 Seiten, also Archivseiten für diese Custom Post Types angelegt. Du hast sogar die Möglichkeit, eine Custom Post Types ein komplett eigenes Templates für die Kategorieseite zuzuweisen. So kannst du alle Artikel innerhalb dieses Custom Post Types liegen, sehr übersichtlich auf deiner Website darstellen und in die Hauptnavigation einbinden.

Beispiele für den Einsatz von Custom Post Types

Filialen/Unternehmensstandorte
Hast du ein Unternehmen mit mehreren Standorten? Dann kannst du für jeden Standort eine eigene Beschreibungsseite anlegen und dafür eine Custom Post Types namens Standorte verwenden.

Koch- und Backrezepte
Hast du eine ganze Reihe von Kochrezepten, die du auf deiner Seite veröffentlichen möchtest? Dann lässt sich auch dies prima mit Custom Post Types in WordPress umsetzen.

Mitarbeiter/Teammitglieder
Hat dein Unternehmen mehrere Mitarbeiter, die du auf Detailseiten vorstellen möchtest? Ein Custom Post Types namens Team könnte dir dabei helfen.

Portfolios von Designer und Grafikern
Möchtest du vielleicht als Designer dein Portfolio vorstellen? Auch das geht ganz perfekt mit einem Custom Post Types in WordPress. Die meisten fertigen Themes die du für WordPress kaufen kannst, enthalten in der Regel sogar schon einen Custom Post Types Namensportfolio. Wenn du also nicht auf einen gekauften Film zurückgreifen möchtest, sondern die Sache lieber selbst in die Hand nimmst, kannst du mit dieser Anleitung dein Portfolio auch selbst anlegen.

Das sind jetzt nur ein paar Anwendungsmöglichkeiten für einen Custom Post Type in WordPress. Ich könnte diese Auflistung jetzt noch ewig weiterführen, aber das Prinzip ist ja jetzt klar geworden.

Custom Post Types in WordPress ohne Plugin anlegen

Um eigene Custom Post Types in WordPress anlegen zu können, müssen wir ein wenig in deinem Code rumfummeln. Genauer: wir müssen eine Ergänzung in deiner functions.php Datei vornehmen. Was jetzt aber ganz heftig klingt, ist eigentlich sehr schnell und einfach umgesetzt. Da musst du selbst als Anfänger keine Manschettenvorhaben.

Ein WordPress Custom Post Type Template für dich

Nehmen wir mal an, dass wir ein Custom Post Types namens Rezepte für deine WordPress Seite anlegen wollen. Dann nehmen wir folgenden Codeschnipsel und fügen ihn in deine functions.php Datei ein:

// Register Custom Post Type
function custom_post_type_rezepte() {

	$labels = array(
		'name'                  => _x( 'Rezepte', 'Post Type General Name', 'text_domain' ),
		'singular_name'         => _x( 'Rezept', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'             => __( 'Rezepte', 'text_domain' ),
		'name_admin_bar'        => __( 'Rezepte', 'text_domain' ),
		'archives'              => __( 'Rezept Archiv', 'text_domain' ),
		'attributes'            => __( 'Item Attributes', 'text_domain' ),
		'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
		'all_items'             => __( 'Alle Rezepte', 'text_domain' ),
		'add_new_item'          => __( 'Neues Rezept hinzufügen', 'text_domain' ),
		'add_new'               => __( 'Neues Rezept', 'text_domain' ),
		'new_item'              => __( 'Neues Rezept', 'text_domain' ),
		'edit_item'             => __( 'Rezept bearbeiten', 'text_domain' ),
		'update_item'           => __( 'Rezept aktualisieren', 'text_domain' ),
		'view_item'             => __( 'Rezept ansehen', 'text_domain' ),
		'view_items'            => __( 'Rezepte anschauen', 'text_domain' ),
		'search_items'          => __( 'Rezept suchen', 'text_domain' ),
		'not_found'             => __( 'Nicht gefunden', 'text_domain' ),
		'not_found_in_trash'    => __( 'Nicht im Papierkorb gefunden', 'text_domain' ),
		'featured_image'        => __( 'Beitragsbild', 'text_domain' ),
		'set_featured_image'    => __( 'Beitragsbild setzen', 'text_domain' ),
		'remove_featured_image' => __( 'Beitragsbild entfernen', 'text_domain' ),
		'use_featured_image'    => __( 'Als Beitragsbild nutzen', 'text_domain' ),
		'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
		'uploaded_to_this_item' => __( 'Für diesen Beitrag hochgeladen', 'text_domain' ),
		'items_list'            => __( 'Rezepte Liste', 'text_domain' ),
		'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
		'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
	);
	$rewrite = array(
		'slug'                  => 'rezepte',
		'with_front'            => true,
		'pages'                 => true,
		'feeds'                 => false,
	);
	$args = array(
		'label'                 => __( 'Rezept', 'text_domain' ),
		'description'           => __( 'Custom Post Type für Rezepte', 'text_domain' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'comments', 'revisions' ),
		'taxonomies'            => array( 'category', 'post_tag' ),
		'hierarchical'          => false,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 5,
		'menu_icon'             => 'dashicons-buddicons-community',
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'rewrite'               => $rewrite,
		'capability_type'       => 'page',
	);
	register_post_type( 'rezepte', $args );

}
add_action( 'init', 'custom_post_type_rezepte', 0 );

Wenn du einen eigenen Custom Post Type in deinen Theme einfügen möchtest, kannst du dafür dieses Custom Post Type Template nutzen.

Du musst nur die Worte „Rezept“ und „Rezepte“ auf dein gewünschtes Thema anpassen.

CPTs mit einem WordPress Custom Posttype Plugin hinzufügen

Es gibt ja wirklich nichts, wofür es nicht auch ein Plugin in WordPress gibt. Und ganz selbst verständlich gibt es auch WordPress Custom Post Type Plugins für WordPress, die dir bei der Arbeit helfen.

Wenn du dich mit dem Codeschnipsel oben also ein wenig unwohl fühlst, kannst du das Ganze auch direkt mit dem kostenlosen Custom Post Type UI Plugin umsetzen.

WordPress Custom Post Type Plugin

Im ersten Schritt geht es erstmal an das generelle Erstellen des Custom Post Types. Für dieses Beispiel bleibe ich mal bei „Rezepten“, weil ich heute noch gar nichts gegessen habe 😉

Schritt 1: Grundeinstellungen für deinen Custom Post Type

Custom Post Type mit Plugin umsetzen

Schritt 2: Zusätzliche Beschriftungen

Im nächsten Schritt legen wir die zusätzlichen Beschriftungen fest. Alle Angaben die du hier machst, schlagen sich nur im Administrationsbereich deiner Website nieder. Du legst also fest, wie z. B. der Eintrag im Adminmenü heißen soll oder wie der Button zum Erstellen eines neuen Inhalts beschriftet werden soll.

WordPress CPT Plugin

Schritt 3: Unterstützte Funktionen festlegen

Zum Schluss musst du noch wählen, welche Funktionen dein neuer Custom Post Type unterstützen soll.

Das läuft mit Custom Post Type UI über eine einfache Checkliste, in der du die gewünschten Funktionen einfach nur mit einem Haken versehen musst.

Titel, Editor und Beitragsbild würde ich immer auswählen, weil du diese 3 Funktionen ja auch in nahezu jedem Anwendungsfall brauchst.

Optionen für den Post Type wählen

Der fertige Custom Post Type

Boooom! Nach dem Speichern ist dein erster eigener Custom Post Type eigentlich schon fertig. In unserem Beispiel könnte jetzt das erste Rezept erstellt werden.

Das ist nur ein kleiner Einblick in das Custom Post Type UI Plugin. Die Möglichkeiten sind wirklich vielfältig, damit du deinen Inhaltstyp genau so erstellen kannst, wie du ihn für deine Seite brauchst.

Unterm Strich

Die WordPress Custom Post Types sind einfach ein unschlagbares Werkzeug, wenn es darum geht, eigene Artikelkategorien in deine Website einzufügen. Es gibt kaum eine Website, die ich in den letzten Jahren erstellt habe, die nicht in irgendeiner Art und Weise Custom Post Types einsetzt. Und zwar immer sinnvoll.

Häufige Fragen

Der Custom Post Type wirft einen 404 Fehler (Page not found) aus. Was kann ich machen?

Das passiert sehr häufig, wenn du deinen Custom Post Type neu angelegt hast. Normalerweise lässt sich der 404 Fehler aber sehr schnell beheben, indem du im Backend einmalig die Einstellungsseite für deine Permalinks aufrufst und sie speicherst. Du brauchst auf der Seite nichts ändern – nur einmal speichern!

Wie viele Custom Post Types kann ich in WordPress anlegen?

WordPress hat von Haus aus keinerlei Begrenzung im Anlegen von Custom Post Types. Wenn du möchtest, könntest du also unbegrenzt viele Custom Post Types in WordPress anlegen. Ob das so ratsam ist und deinen WordPress Administrationsbereich wesentlich übersichtlicher macht, ist natürlich fraglich.

Foto des Autors

Für dich geschrieben von

Heiko Schneider

Hej, ich bin Heiko. Mitbegründer der WPFellows und seit über 15 Jahren professioneller WordPress Entwickler und Trainer. Mehr über Heiko erfahren.
WordPress Fellows

Schreibe einen Kommentar