Anleitung zur Erstellung benutzerdefinierter Beitragstypen in WordPress

Table of Contents
Eine Illustration zeigt eine Person, die auf einen großen Bildschirm mit mehreren Fenstern zeigt. Der Bildschirm zeigt Text und ein Bild. Im Hintergrund sind bläuliche Blätter als Dekoration zu sehen.
Oft wird WordPress fälschlicherweise als reine Blogging-Plattform angesehen, obwohl es sich in den letzten Jahren zu einem der stärksten Content-Management-Systeme entwickelt hat. Standardmäßig bietet WordPress die Beitragstypen „Beitrag“ und „Seite“. Aber Sie können viele benutzerdefinierte Inhaltstypen erstellen, die als benutzerdefinierte Beitragstypen bezeichnet werden. In diesem Artikel zeigen wir Ihnen, wie Sie Ihre eigenen benutzerdefinierten Beitragstypen in WordPress erstellen und professionell nutzen können.

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:

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.

In den WordPress-Dokumentationen mehr erfahren >>

Ist dieses Thema komplex für Sie?
Keine Sorge! Sie können ganz einfach eine Anfrage zur Plugin-Erstellung stellen und wir kümmern uns darum.

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 '<h2>' . get_the_title() . '</h2>';
        echo '<div class="entry-content">' . get_the_content() . '</div>';
    endwhile;
    wp_reset_postdata();
else :
    echo '<p>' . __('Sorry, no posts matched your criteria.') . '</p>';
endif;
				
			
Suchen Sie nach einer einfachen Lösung?
Wenn dieses Thema zu kompliziert erscheint, lassen Sie uns Ihnen helfen! Fordern Sie noch heute die Erstellung Ihres individuellen Plugins an.

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.

Verpassen Sie keine neuen Beiträge!
Abonnieren Sie unseren Newsletter und erhalten Sie die neuesten Tipps zu diesem Thema direkt in Ihr Postfach.
Mobin
CTO
Ich bin ein Entwickler mit Fachkenntnissen in den Programmiersprachen PHP und JavaScript und spezialisiert auf WordPress-Entwicklung. Ich bin stets wissbegierig und freue mich darauf, neue Fähigkeiten zu entdecken. Außerdem habe ich Erfahrungen mit dem Laravel-Framework und Flutter gesammelt.

Kommentare

Schreibe einen Kommentar

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

Ähnliche Beiträge
Bleiben Sie informiert!
Exklusive Tipps und Neuigkeiten direkt in Ihren Posteingang.
Wir haben Ihre Auswahl erhalten:

Website Business Paket

Website Business Paket

Ihrer Website-Anfrage