
🚀 So erstellst du eine Archivseite für benutzerdefinierte Beitragstypen in WordPress
Wenn eine Website über das Stadium „Blog plus ein paar Seiten" hinauswächst, reichen Standardbeiträge und Kategorien nicht mehr aus. Portfolios, Teams, Referenzen, Case Studies, Stellenanzeigen, all das möchte in einer eigenen Struktur leben, statt mit Kategorie-Workarounds in den allgemeinen Beitragsstrom gezwängt zu werden.
WordPress löst dieses Problem durch Custom Post Types. Aber einen CPT anzulegen, genügt nicht; Sie benötigen auch eine Seite, auf der alle Einträge dieses Typs gesammelt dargestellt werden: eine Archivseite. Ohne sie sehen Ihre Besucher Ihre Portfolio-Arbeiten oder Teammitglieder schlicht nicht als geschlossenen Block.
Grid-Plugins wie Essential Grid übernehmen die visuelle Seite, bringen aber zusätzliches CSS und JS mit. Bei kleinen Projekten fällt das nicht ins Gewicht, doch auf einer Site mit Zehntausenden Besuchern zählt jedes Kilobyte. Der eingebaute WordPress-Archivmechanismus liefert dieselbe Funktionalität ohne Frontend-Overhead, und die Einrichtung dauert nur 10 Minuten.
💡 Kurzüberblick:
- Legen Sie einen Custom Post Type über CPT UI an und aktivieren Sie die Archiv-Unterstützung gleich in den Einstellungen
- Schreiben Sie bei Bedarf ein eigenes Template für präzise Layoutkontrolle
- Konfigurieren Sie die SEO-Metadaten über Yoast SEO: Titel, Beschreibung und og:image für die Archivseite
- Deaktivieren Sie die Seitenleiste und fügen Sie bei Bedarf Open-Graph-Markup hinzu
1. Einen Custom Post Type anlegen
Der einfachste und zuverlässigste Weg, einen CPT ohne eine einzige Codezeile zu registrieren, ist das Plugin Custom Post Type UI. Es ist auf über einer Million Websites installiert, wird seit 2010 gepflegt, und die Oberfläche ist intuitiv: Die Formularfelder entsprechen eins zu eins den Argumenten der Funktion register_post_type().

Nach der Installation des Plugins gehen Sie zu CPT UI → Add/Edit Post Types. Füllen Sie die Mindestangaben aus:
- Post Type Slug: lateinische Zeichen, keine Leerzeichen (zum Beispiel
portfolio) - Plural Label: „Portfolio"
- Singular Label: „Arbeit"
Die übrigen Einstellungen können Sie auf den Standardwerten belassen; die Vorgaben decken die allermeisten typischen Szenarien ab. Klicken Sie auf Add Post Type, und der neue Typ erscheint im Admin-Panel als eigener Menüpunkt.
2. Die Archivseite konfigurieren
Damit die Einträge des neuen Typs auf einer eigenen Seite gesammelt werden, müssen Sie die Archiv-Unterstützung explizit aktivieren. Sie ist standardmäßig deaktiviert.
Gehen Sie zu CPT UI → Edit Post Types und wählen Sie den von Ihnen erstellten Typ aus der Liste:

Scrollen Sie zum Abschnitt Settings und füllen Sie zwei entscheidende Felder aus:

- Has Archive: setzen Sie auf
True. Das ist der Schalter für die Archivseite. - Custom Rewrite Slug: der Slug, unter dem das Archiv erreichbar sein wird. Stimmt üblicherweise mit dem Post-Type-Slug überein (zum Beispiel
portfolio).
Speichern Sie die Änderungen und navigieren Sie zu http://YOUR_SITE/portfolio. Sie sehen eine Liste aller Einträge dieses Typs, gestaltet mit der Standardvorlage archive.php des aktiven Themes:

Die Basisseite ist fertig. Wenn die Standardoptik ausreicht, können Sie hier aufhören. In den meisten Fällen werden Sie das Erscheinungsbild jedoch verfeinern wollen.
3. Eigenes archive-{posttype}.php-Template
WordPress nutzt eine klare Template-Hierarchie. Wenn ein Besucher auf einer CPT-Archivseite landet, sucht der Core in dieser Reihenfolge nach Dateien:
archive-{posttype}.phparchive.phpindex.php
Das bedeutet, Sie müssen nur eine Datei mit dem Namen archive-portfolio.php anlegen (wobei portfolio Ihr Post-Type-Slug ist), und WordPress greift automatisch darauf zu.
Schritte:
Kopieren Sie den Inhalt der archive.php Ihres Themes in eine neue Datei archive-portfolio.php. Passen Sie dann das Markup an Ihre Bedürfnisse an: Blenden Sie das Datum aus, wenn es für ein Portfolio nicht relevant ist; geben Sie das Vorschaubild in einer anderen Größe aus; ersetzen Sie das standardmäßige the_excerpt() durch the_content().
1 <?php 2 /* Template for Portfolio archive — overrides archive.php */ 3 4 if ( have_posts() ) { 5 while ( have_posts() ) { 6 the_post(); 7 // Your custom markup here 8 the_post_thumbnail( 'medium' ); 9 the_title( '<h3>', '</h3>' ); 10 the_excerpt(); 11 } 12 }
Wenn Sie mit einem FSE-Theme (Block-Theme) arbeiten, wird das Archiv-Template im Site-Editor erstellt: Design → Editor → Templates → Neues Template hinzufügen → Archiv: Portfolio. Kein PHP, rein Blöcke, aber die Logik ist dieselbe: individuelles Layout für einen bestimmten CPT.
4. SEO-Optimierung für die Archivseite
Eine Archivseite ist nicht nur eine technische URL. Suchmaschinen indexieren sie, und sie kann durchaus Traffic für kommerzielle Suchanfragen wie „Webstudio Portfolio" oder „Agentur Team" bringen.
Wenn Sie Yoast SEO installiert haben, werden die Metadaten für CPT-Archive an einer zentralen Stelle konfiguriert:

Öffnen Sie Yoast SEO → Einstellungen → Inhaltstypen, suchen Sie Ihren Custom Post Type und klappen Sie den Abschnitt aus. Legen Sie Vorlagen für Titel und Meta-Beschreibung fest:

Empfohlene Vorlagen:
- Titel:
%%pt_plural%% %%page%%, %%sitename%% - Meta-Beschreibung:
%%pt_plural%%, work samples, case studies and projects. %%sitename%%
Yoast setzt automatisch die Variablen %%pt_plural%% und %%pt_single%% aus Ihren CPT-Einstellungen ein. Vergessen Sie nicht, noindex für die Archivseite zu deaktivieren, falls es standardmäßig aktiv ist; die Checkbox In Suchergebnissen anzeigen muss aktiv sein.
5. Open-Graph-Markup und Seitenleiste
Damit beim Teilen des Archivseiten-Links in sozialen Medien ein Bild mitgezogen wird, fügen Sie og:image über den wp_head-Hook hinzu. Platzieren Sie den Code in der functions.php Ihres aktiven Themes oder über das Code-Snippets-Plugin:
1 add_action( 'wp_head', 'cpt_archive_og_image' ); 2 function cpt_archive_og_image() { 3 if ( is_post_type_archive( 'portfolio' ) ) { 4 echo '<meta property="og:image" content="' . 5 get_template_directory_uri() . '/images/portfolio-og.jpg' . '" />'; 6 } 7 }
Die Bedingung is_post_type_archive() greift nur auf der Archivseite des angegebenen CPT, sodass das Markup andere Seiten nicht beeinflusst. Legen Sie das Bild in Ihrem Theme-Ordner ab oder laden Sie es über die Mediathek hoch und verwenden Sie die direkte URL.
Ein letzter Feinschliff: die Seitenleiste. Auf Archivseiten ist sie oft überflüssig, besonders bei Portfolios oder Teams, wo die Kartenbreite zählt. Die meisten modernen Themes erlauben es, die Seitenleiste in den Seiteneinstellungen zu deaktivieren:

Bei Block-Themes stellen Sie das Template in den Archivseiten-Einstellungen auf Volle Breite um. Bei klassischen Themes suchen Sie nach Seitenattribute → Template → Volle Breite im Customizer oder in der Bearbeitungs-Metabox.
📺 Video: der gesamte Prozess in 8 Minuten
Eine kurze englischsprachige Demo, die CPT-Erstellung, Archiv-Aktivierung und ein eigenes Template vom ersten Klick bis zur fertigen Seite abdeckt:
⁉️🤔 Häufig gestellte Fragen
Warum liefert die Archivseite nach dem Anlegen des CPT einen 404-Fehler?
Höchstwahrscheinlich haben Sie den Parameter Has Archive nicht aktiviert. Gehen Sie zu CPT UI → Edit Post Types, suchen Sie Ihren Typ, setzen Sie Has Archive auf True und geben Sie einen Custom Rewrite Slug an. Gehen Sie nach dem Speichern unbedingt zu Einstellungen → Permalinks und klicken Sie auf „Änderungen speichern"; das leert den Rewrite-Rules-Cache.
Kann ich das CPT-UI-Plugin weglassen?
Ja, Custom Post Types können in der
functions.phpüber die Funktionregister_post_type()registriert werden. Das erfordert etwa 15-20 Codezeilen, für einen Entwickler eine Sache von ein paar Minuten. Das Plugin bietet lediglich eine visuelle Oberfläche und verhindert Tippfehler in den Argumenten.
Wie zeige ich CPT-Einträge auf der Startseite an?
Fügen Sie
'has_archive' => truezu den Argumenten vonregister_post_type()hinzu, und um Einträge in den Haupt-Feed aufzunehmen, setzen Sie'public' => trueund'exclude_from_search' => false. Für eine gezielte Ausgabe nutzen SieWP_Querymit dem Argument'post_type' => 'portfolio'.
Was ist der Unterschied zwischen archive-{posttype}.php und taxonomy-{taxonomy}.php?
Erstere bedient die Seite mit ALLEN CPT-Einträgen; letztere bedient die Filterung nach einem bestimmten Taxonomie-Begriff (zum Beispiel „Projekttyp: Landingpage"). Beide folgen der Template-Hierarchie, greifen aber bei unterschiedlichen URLs.
Ist ein eigenes Template zwingend erforderlich?
Nein. Wenn die Standard-
archive.phpfür Sie passt, aktivieren Sie einfach Has Archive und nutzen Sie diese. Ein eigenes Template ist dann nötig, wenn Sie ein abweichendes Markup benötigen: andere Vorschaubildgrößen, kein Datum, ein Raster statt einer Liste.
Was, wenn das Standard-Template für Sie nicht funktioniert?
Eine Archivseite für benutzerdefinierte Beiträge ist etwas, das Sie einmal einrichten und dann vergessen. CPT UI plus ein paar Zeilen in der functions.php decken das Thema vollständig ab: keine All-in-One-Plugins, kein zusätzlicher Code im Frontend.
Sollten nach der Lektüre noch Fragen zu einer bestimmten Theme- oder Plugin-Kombination offen sein, hinterlassen Sie einen Kommentar unter dem Beitrag. Wir prüfen Ihren Fall individuell.



