Was ist ein benutzerdefinierter Beitragstyp in WordPress?
Ein benutzerdefinierter Beitragstyp oder Custom Post Type ist ein Inhaltsmodell wie Beiträge und Seiten. Da WordPress sich von einem Blog zu einem Content Management System entwickelt hat, bleibt das Wort „Beitrag“ bestehen. Es kann sich jedoch auf jede Art von Inhalt in WordPress beziehen. Standardmäßig gibt es folgende Beitragstypen:
- Beitrag (post)
- Seite (page)
- Anhang (attachment)
- Überarbeitung (revision)
- Navigationsmenü (nav-menu)
Sie können beliebige Beitragstypen erstellen und sie benennen, wie Sie möchten. Wenn Sie beispielsweise eine Website zur Filmkritik und -vorstellung betreiben, benötigen Sie möglicherweise einen Beitragstyp für Filme. Diese Beitragstypen können eigene Abschnitte und Kategorisierungen haben, z.B. Portfolio, Testimonials, Produkte usw.
Erstellung benutzerdefinierter Beitragstypen mit einem Plugin
Der einfachste Weg, Beitragstypen in WordPress zu erstellen, ist die Verwendung eines Plugins. Da diese Methode einfach und sicher ist, wird sie Anfängern empfohlen.
Installieren und aktivieren Sie zunächst das Plugin „Custom Post Type UI“. Nach der Aktivierung fügt das Plugin ein neues Element namens CPT UI zum Administrationsmenü hinzu.
Um einen neuen Beitragstyp zu erstellen, gehen Sie zu CPT UI » Add New.
Das Plugin „Custom Post Type UI“ ermöglicht auch die Erstellung benutzerdefinierter Taxonomien.
Daher ist die Custom Post Type-Seite in zwei Spalten unterteilt. Links ist ein Formular zur Einrichtung des benutzerdefinierten Beitragstyps, rechts zur Erstellung von Taxonomien.
In der Spalte für benutzerdefinierte Beitragstypen müssen Sie zuerst einen Namen festlegen. Dieser sollte nicht mehr als 20 Zeichen haben, zum Beispiel Filme, Rezepte, Angebote usw.
Im nächsten Schritt legen Sie ein Label für den Beitragstyp fest. Dieses Label wird im Admin-Bereich von WordPress angezeigt. Verwenden Sie für eine klarere Bedeutung die Pluralform des Begriffs, z.B. Movies, Glossary usw.
Schließlich schreiben Sie eine Beschreibung für Ihren benutzerdefinierten Beitragstyp. Diese sollte einfach erklären, für welchen Zweck der Beitragstyp erstellt wurde.
Klicken Sie dann auf die Schaltfläche „Create Custom Post Type“, um den neuen Beitragstyp zu erstellen. Fertig.
Sie können auch die Links „Advanced Label Options“ und „Advanced Option“ anklicken und weitere Details zum Beitragstyp ändern.
Erstellung benutzerdefinierter Beitragstypen manuell
Das Problem bei der Erstellung von Beitragstypen mit Plugins ist, dass bei deren Deaktivierung alle Beitragstypen nicht mehr angezeigt werden. Alle Inhalte der einzelnen Beiträge bleiben erhalten, aber der Beitragstyp wird nicht mehr im Admin-Bereich angezeigt.
Wenn Sie an der Website eines Kunden arbeiten und kein Plugin installieren möchten, können Sie den benutzerdefinierten Beitragstyp über den folgenden Code in der Datei functions.php Ihres Themes hinzufügen.
Hier ein schnelles und vollständiges Beispiel, damit Sie verstehen, wie es funktioniert:
function create_posttype() {
register_post_type('movies', [
'labels' => [
'name' => __('Movies'),
'singular_name' => __('Movie')
],
'public' => true,
'has_archive' => true,
'rewrite' => ['slug' => 'movies']
]);
}
add_action('init', 'create_posttype');
Dieser Code registriert einen Beitragstyp namens „movies“ mit einer Reihe von Argumenten, die die Optionen für den Beitragstyp sind.
Hier werden die Details der Optionen erklärt:
function custom_post_type() {
$labels = [
'name' => _x('Movies', 'Post Type General Name', 'twentythirteen'),
'singular_name' => _x('Movie', 'Post Type Singular Name', 'twentythirteen'),
'menu_name' => __('Movies', 'twentythirteen'),
'parent_item_colon' => __('Parent Movie', 'twentythirteen'),
'all_items' => __('All Movies', 'twentythirteen'),
'view_item' => __('View Movie', 'twentythirteen'),
'add_new_item' => __('Add New Movie', 'twentythirteen'),
'add_new' => __('Add New', 'twentythirteen'),
'edit_item' => __('Edit Movie', 'twentythirteen'),
'update_item' => __('Update Movie', 'twentythirteen'),
'search_items' => __('Search Movie', 'twentythirteen'),
'not_found' => __('Not Found', 'twentythirteen'),
'not_found_in_trash' => __('Not found in Trash', 'twentythirteen')
];
$args = [
'label' => __('movies', 'twentythirteen'),
'description' => __('Movie news and reviews', 'twentythirteen'),
'labels' => $labels,
'supports' => ['title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields'],
'taxonomies' => ['genres'],
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 5,
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page'
];
register_post_type('movies', $args);
}
add_action('init', 'custom_post_type', 0);
Dieser Code ergänzt eine Vielzahl von Optionen wie Unterstützung für Kommentare, benutzerdefinierte Felder usw. Es gibt auch eine Taxonomie namens „genres“. Ändern Sie hierarchical
auf true
, um Eltern-Kind-Beziehungen ähnlich wie auf Seiten zu ermöglichen.
Anzeige benutzerdefinierter Beitragstypen auf der Website
Standardmäßig kann WordPress benutzerdefinierte Beitragstypen anzeigen. Sobald einige erstellt sind, können Sie sie anzeigen lassen.
Anzeige mit standardmäßiger Archivvorlage
Gehen Sie zu Design » Menüs und fügen Sie Ihrem Menü einen Link hinzu. Er wird auf Ihre benutzerdefinierten Beitragstypen verweisen, typischerweise in dieser Form:
- http://example.com/movies
- http://example.com?post_type=movies
Speichern Sie den Link im Hauptmenü und klicken Sie darauf auf Ihrer Website. Dies leitet Sie zu einem Archiv Ihrer benutzerdefinierten Beitragstypen. Um das Erscheinungsbild zu ändern, modifizieren Sie die Datei archive.php
des Themas.
Verwendung von Vorlagen für Archive und Einzelbeiträge
Sie können spezielle Vorlagen erstellen. Erstellen Sie eine Datei namens archive-movies.php
im Theme-Verzeichnis und kopieren Sie den Inhalt von archive.php
hinein, um Anpassungen vorzunehmen.
Erstellen Sie für Einzelbeiträge eine Datei single-movies.php
und kopieren Sie den Inhalt von single.php
hinein, um Anpassungen vorzunehmen.
Anzeige benutzerdefinierter Beitragstypen auf der Startseite
Fügen Sie folgenden Code in die Datei functions.php
Ihres Themes ein, um benutzerdefinierte Beitragstypen auch auf der Startseite anzuzeigen:
add_action('pre_get_posts', 'add_my_post_types_to_query');
function add_my_post_types_to_query($query) {
if (is_home() && $query->is_main_query()) {
$query->set('post_type', ['post', 'movies']);
}
return $query;
}
Abfrage von Beitragstypen
Verwenden Sie den folgenden Code für spezifische Abfragen in Ihren Vorlagen:
// Query args
$args = ['post_type' => 'movies', 'posts_per_page' => 10];
$the_query = new WP_Query($args);
if ($the_query->have_posts()) :
while ($the_query->have_posts()) : $the_query->the_post();
echo '' . get_the_title() . '
';
echo '' . get_the_content() . '';
endwhile;
wp_reset_postdata();
else :
echo '' . __('Sorry, no posts matched your criteria.') . '
';
endif;
Anzeige in Widgets
Wie Sie bereits gesehen haben, gibt es in WordPress standardmäßig Widgets wie die Anzeige der neuesten Beiträge. Diese Widgets erlauben jedoch nicht die Anzeige von Post-Typen. Aber was tun, wenn wir diese Post-Typen nach den neuesten anzeigen möchten? Es gibt eine einfache Lösung dafür.
Zuerst müssen Sie das Plugin Ultimate Post Widget installieren und aktivieren. Nach der Aktivierung gehen Sie zu Darstellung >> Widgets und fügen das Ultimate Post Widget zu Ihrer Seitenleiste hinzu.
Dieses leistungsstarke Widget ermöglicht es Ihnen, alle Beiträge unabhängig von ihrem Typ anzuzeigen. Zudem können Sie den Beginn des Beitrags zusammen mit einem „Weiterlesen“-Link neben dessen Bild und Titel anzeigen. Passen Sie das Widget nach Ihren Wünschen und den Beitragstypen, die Sie anzeigen möchten, an. Speichern Sie dann die Änderungen und sehen das Ergebnis auf Ihrer Website.
Weitere Tipps für benutzerdefinierte Beitragstypen
Es gibt viele Dinge, die Sie mit Beitragstypen tun können. Sie können sie in Ihrem RSS-Feed anzeigen oder sie nach ihrem Feed kategorisieren. Wenn Sie das Disqus-Kommentarsystem verwenden, können Sie auch die entsprechenden Einstellungen in WordPress vornehmen.
Wir hoffen, dass dieser Artikel Ihnen bei der Erstellung Ihrer gewünschten benutzerdefinierten Post-Typen geholfen hat. Bei Fragen oder nützlichen Hinweisen zur Verbesserung der Post-Typen lassen Sie es uns bitte im Kommentarbereich wissen.