Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

So erstellen Sie eine benutzerdefinierte Archivseite für Beitragstypen in WordPress

Hinweis der Redaktion: Wir erhalten eine Provision für Partnerlinks auf WPBeginner. Die Provisionen haben keinen Einfluss auf die Meinung oder Bewertung unserer Redakteure. Erfahre mehr über Redaktioneller Prozess.

Möchten Sie eine benutzerdefinierte Post-Type-Archivseite in WordPress erstellen?

Normalerweise verwenden benutzerdefinierte Beitragstypen in WordPress die Archivvorlage Ihres Themes. Sie können auch Ihre eigene benutzerdefinierte Archivseite für Ihre Beitragstypen erstellen.

In diesem Artikel zeigen wir Ihnen, wie Sie ganz einfach benutzerdefinierte Post-Typen Archivseite in WordPress erstellen.

Creating a custom post type archive page in WordPress

Was ist eine benutzerdefinierte Beitragstyp-Archivseite in WordPress?

Auf einer Archivseite für einen benutzerdefinierten Beitragstyp können Benutzer alle unter einem bestimmten benutzerdefinierten Beitragstyp abgelegten Elemente anzeigen.

Wenn Sie einen benutzerdefinierten Beitragstyp erstellen, erstellt WordPress automatisch Archivseiten für diesen Beitragstyp. Die Archivseite ist eine Auflistung aller Beiträge, die mit diesem benutzerdefinierten Beitragstyp verknüpft sind. Auf diese Weise können Besucher den Inhalt dieses speziellen Beitragstyps leicht durchsuchen und darauf zugreifen.

WordPress verfügt standardmäßig über zwei häufig verwendete Beitragstypen, nämlich Beiträge und Seiten. WordPress-Plugins können auch ihre eigenen Beitragstypen erstellen.

Zum Beispiel fügt WooCommerce Ihrer WordPress-Website einen neuen Beitragstyp namens Produkte hinzu.

In ähnlicher Weise können Sie auch benutzerdefinierte Beitragstypen erstellen und diese zur Verwaltung verschiedener Arten von Inhalten verwenden.

Nachdem Sie Ihren benutzerdefinierten Beitragstyp erstellt haben, können Sie ihn im WordPress-Verwaltungsbereich verwenden. Allerdings ist Ihr WordPress-Theme für die Anzeige all Ihrer Inhalte verantwortlich.

Wenn Ihr Theme keine Vorlage für einen bestimmten Beitragstyp hat, dann verwendet WordPress die Standard-Archivvorlage, um eine beliebige Archivseite anzuzeigen.

Archives page for a custom post type

Weitere Informationen finden Sie in unserem Leitfaden zur Hierarchie von WordPress-Vorlagen und deren Verwendung in Ihrem WordPress-Theme.

Wenn Sie nun Änderungen an der Anzeige Ihrer benutzerdefinierten Archivseite vornehmen möchten, können Sie eine benutzerdefinierte Vorlage erstellen.

Werfen wir also einen Blick darauf, wie man in WordPress ganz einfach eine benutzerdefinierte Archivseite für einen Beitragstyp erstellt.

Aktivieren Sie das Archiv für Ihren benutzerdefinierten Beitragstyp in WordPress

Bevor Sie die Archivseite des benutzerdefinierten Beitragstyps erstellen und verwenden können, müssen Sie zunächst sicherstellen, dass die Archivfunktionalität Ihres benutzerdefinierten Beitragstyps aktiviert ist.

Wenn Ihr benutzerdefinierter Beitragstyp z. B. Filme heißt und Sie SEO-freundliche Permalinks aktiviert haben, wird Ihr Beitragstyp-Archiv wie folgt beschriftet:

https://example.com/movies

Wenn Sie eine 404-Fehlerseite sehen, wenn Sie diese Seite besuchen, dann hat Ihr Beitragstyp keine Archivfunktionalität aktiviert.

404 error for custom post type archive page

Wenn Sie ein Plugin verwendet haben, um Ihren benutzerdefinierten Beitragstyp zu erstellen, können Sie ihn dort einfach bearbeiten und die Archivfunktion aktivieren.

Im CPT UI-Plugin können Sie zum Beispiel Ihren benutzerdefinierten Beitragstyp bearbeiten und die Funktion „Has Archive“ unter den Beitragstyp-Einstellungen aktivieren.

CPT UI turn on archive

Wenn Sie hingegen Code zur Erstellung Ihres benutzerdefinierten Beitragstyps verwendet haben, müssen Sie diesen Code bearbeiten, um Archive zu aktivieren.

Nachfolgend finden Sie ein kurzes Beispiel für den Code zur Erstellung eines Beitragstyps. Wie Sie sehen können, enthält die letzte Zeile ein zusätzliches Attribut, um Archivseiten zu aktivieren:

add_action( 'init', 'create_post_type' );
function create_post_type() {
    register_post_type( 'movies',
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' )
            ),
        'public' => true,
        'has_archive' => true,
        )
    );
}

Nach dem Hinzufügen der has_archive-Funktionalität können Sie die Archivseite Ihres benutzerdefinierten Beitragstyps sehen, anstatt einen WordPress-Fehler zu erhalten.

Anpassen der Archivseite des benutzerdefinierten Beitragstyps

Für einige Benutzer ist die Standard-Archivvorlage völlig ausreichend. Sie listet alle Artikel auf, die Sie unter Ihrem benutzerdefinierten Beitragstyp veröffentlicht haben.

Einige Benutzer möchten es jedoch vielleicht ein wenig ändern, damit es sich von Ihrem Blog-Archiv und anderen Archivseiten unterscheidet.

Sie können dies tun, indem Sie eine benutzerdefinierte Vorlage für Ihren benutzerdefinierten Beitragstyp zu Ihrem WordPress-Theme hinzufügen.

Zunächst müssen Sie sich mit einem FTP-Client oder über die Dateimanager-App in Ihrem Hosting-Control Panel mit Ihrer WordPress-Website verbinden.

Sobald die Verbindung hergestellt ist, müssen Sie zum Ordner /wp-content/themes/your-current-theme/ navigieren.

Download archive template

Von hier aus müssen Sie die Datei archive.php auf Ihren Computer herunterladen.

Nach dem Download müssen Sie die Datei in archive-{posttype}.php umbenennen, wobei {posttype} der Name Ihres benutzerdefinierten Beitragstyps ist.

Wenn Ihr benutzerdefinierter Beitragstyp zum Beispiel movies heißt, müssen Sie ihn in archive-movie.php umbenennen.

Rename archive template

Sie können diese Datei nun mit einem beliebigen Texteditor wie Notepad öffnen, um Änderungen vorzunehmen.

Diese Datei enthält bereits den gesamten Code, der für die Anzeige des benutzerdefinierten Post-Type-Inhalts erforderlich ist. Sie können jeden beliebigen Code hinzufügen oder das Layout der vorhandenen Vorlage ändern.

Tipp: Wenn Sie Hilfe benötigen, lesen Sie unseren WordPress-Theme-Entwicklungs-Spickzettel für Anfänger.

Wenn Sie mit Ihren Änderungen zufrieden sind, vergessen Sie nicht, die Datei zu speichern.

Danach müssen Sie diese Datei mit dem FTP oder der Dateimanager-App in Ihren WordPress-Theme-Ordner hochladen.

Sie können nun die Archivseite Ihres benutzerdefinierten Beitragstyps besuchen, um Ihre Änderungen in Aktion zu sehen.

Custom archive template preview

Erstellen einer benutzerdefinierten Posttyp-Archivseite mit SeedProd

Für diese Methode werden wir SeedProd verwenden. Es ist das beste WordPress-Seitenerstellungs-Plugin auf dem Markt und ermöglicht es Ihnen, ganz einfach benutzerdefinierte Seiten für Ihre Website zu erstellen.

Es verfügt über eine Drag-and-Drop-Schnittstelle, mit der Sie Ihre benutzerdefinierte Post-Type-Seite ganz einfach gestalten können, ohne Code schreiben zu müssen. Sie können SeedProd auch verwenden, um andere Seiten auf Ihrer Website zu gestalten oder sogar ein benutzerdefiniertes Thema von Grund auf zu erstellen.

Zunächst müssen Sie das SeedProd-Plugin installieren und aktivieren. Weitere Details finden Sie in unserer Schritt-für-Schritt-Anleitung für die Installation eines WordPress-Plugins.

Bei der Aktivierung müssen Sie Ihren SeedProd-Lizenzschlüssel eingeben. Sie finden diese Informationen in Ihrem Konto auf der SeedProd-Website.

SeedProd license key

Als nächstes müssen Sie zu SeedProd “ Landing Pages gehen.

Klicken Sie hier auf die Schaltfläche „Neue Landing Page hinzufügen“, um zu beginnen.

Add new landing page

Als nächstes müssen Sie eine Vorlage für Ihre Seite auswählen.

Wenn es eine Vorlage gibt, die dem Design Ihrer Website ähnelt, können Sie diese verwenden oder mit einer leeren Vorlage beginnen.

Choose template

Als Nächstes müssen Sie einen Namen für Ihre Seite angeben und eine URL wählen.

Stellen Sie sicher, dass Sie etwas verwenden, das Ihren benutzerdefinierten Beitragstyp repräsentiert.

page name and URL

Dadurch gelangen Sie zur Oberfläche des Seitenerstellers.

Sie können zunächst ein Layout auswählen und dann in der linken Spalte Blöcke hinzufügen.

Page builder user interface

Beginnen wir mit dem Hinzufügen des Posts-Blocks, um Elemente aus Ihrem benutzerdefinierten Beitragstyp anzuzeigen.

Ziehen Sie einfach den Block „Beiträge“ aus dem Abschnitt „Erweitert“ auf Ihre Seite und legen Sie ihn dort ab.

Add posts block

In der Standardeinstellung zeigt der Beitragsblock Ihre Blogbeiträge an.

Klicken Sie auf die Blockeinstellungen und wählen Sie dann Ihren Beitragstyp aus dem Abschnitt Abfrage nach Beitragstyp.

Select post type

Danach können Sie weitere Optionen prüfen, um das Featured Image zu aktivieren, die Größe des Auszugs zu ändern und vieles mehr.

Wenn Sie mit den Einstellungen für den Beitragsblock fertig sind, können Sie zur Registerkarte Abschnitte wechseln und eine Kopf- oder Fußzeile zu Ihrem Seitenlayout hinzufügen.

Edit your post type page

Sobald Sie mit der Bearbeitung fertig sind, können Sie Ihre Seite veröffentlichen.

Klicken Sie einfach auf den Dropdown-Pfeil neben der Schaltfläche „Speichern“ und wählen Sie „Veröffentlichen“.

Publish your custom page

Sie können nun Ihre benutzerdefinierte Seite besuchen, indem Sie auf die Registerkarte Vorschau klicken, um sie in Aktion zu sehen.

So sieht unsere benutzerdefinierte Beitragstyp-Archivseite auf unserer Testseite aus.

Custom archive page template created with SeedProd

Sie können diese Seite auch zu Ihrem Navigationsmenü hinzufügen oder weiter bearbeiten, um sie weiter zu optimieren.

Beispiele für Archivseiten mit benutzerdefiniertem Beitragstyp

Wenn Sie eine benutzerdefinierte Vorlage für Ihre Archivseite verwenden, können Sie diese an Ihre Bedürfnisse anpassen.

Sie können zum Beispiel die Seitenleiste entfernen, das Layout der Seite ändern und mehr Kontext bereitstellen, um die Archivseite ansprechender zu gestalten.

Nachfolgend finden Sie einige Beispiele für benutzerdefinierte Archivseiten mit ihren eigenen benutzerdefinierten Vorlagen.

DieWPBeginner Deals-Seite ist ein benutzerdefinierter Beitragstyp, der seine eigene Archivvorlage verwendet.

Custom post type archive page example - WPBeginner Deals

Wir verwenden auch eine benutzerdefinierte Vorlage für unseren WordPress-Glossarbereich.

Es handelt sich auch um einen benutzerdefinierten Beitragstyp.

Glossary page using a custom post type archive page

Unsere Freunde bei MemberPress verwenden eine benutzerdefinierte Post-Type-Archivvorlage für ihren Addons-Bereich.

Das Beispiel ist in der nachstehenden Abbildung zu sehen.

MemberPress addons custom post type

Wir hoffen, dass dieser Artikel Ihnen geholfen hat zu lernen, wie Sie eine benutzerdefinierte Archivseite erstellen können. Vielleicht möchten Sie auch unsere Liste der wichtigsten WordPress-Plugins und -Tools für Business-Websites oder unseren Expertenvergleich der besten VoIP-Anbieter für Unternehmen lesen.

Wenn Ihnen dieser Artikel gefallen hat, dann abonnieren Sie bitte unseren YouTube-Kanal für WordPress-Videotutorials. Sie können uns auch auf Twitter und Facebook finden.

Offenlegung: Unsere Inhalte werden von unseren Lesern unterstützt. Das bedeutet, dass wir möglicherweise eine Provision verdienen, wenn Sie auf einige unserer Links klicken. Mehr dazu erfahren Sie unter Wie WPBeginner finanziert wird , warum das wichtig ist und wie Sie uns unterstützen können. Hier finden Sie unseren redaktionellen Prozess .

Das ultimative WordPress Toolkit

Erhalte KOSTENLOSEN Zugang zu unserem Toolkit - eine Sammlung von WordPress-bezogenen Produkten und Ressourcen, die jeder Profi haben sollte!

Reader Interactions

53 KommentareEine Antwort hinterlassen

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Fabio says

    Hi there
    I’ve created the Archive Page adding the archive-custom.php file to the file manager of my website as explained here.
    Only, I have no way to customize it but using the theme embedded Customize section.
    I thought instead I was going to be able to customize the CPTs Archive Page as all other pages, i.e. with a page builder (Elementor in my case).
    Where did I go wrong (in case I did)?

    • WPBeginner Support says

      It would depend on your specific theme for what customization options are available which is why we recommend SeedProd in our article to give a drag and drop customization option.

      Admin

  3. Ifeoluwa Ajetomobi says

    Hi, love is step by step guide, but I would love to know how to create an archive template page for a book directory, instead of using any filter to navigate categories, I will love to learn how to create a custom archive page to display each categories.
    Eg. Like a business listing site, people can filter by location, business type but I will love to know how to create archive page for it instead of using filter

    Thank you

  4. Leo Brady says

    Hi there, thanks for your Custom Post blogs!

    I have successfully created a custom post type and associated Archive page.

    I now want to display the custom posts on the main Archive page as well, so that if for example someone click a Category link they see the regular and custom posts that have that particular Category.

    What is the best way to achieve this?

  5. Carrie Lewis says

    I have a quick question. I am trying to build a FAQ page and I would like just the questions to show on the main archive page and not the content. So when they click on the questions it will take them to the content page itself.

    Also is there a way to not show the authors name in the posted content. I am not a programmer but am learning. Thanks. :-)

  6. Monique says

    Everything works but how do you give your custom post type another design as your other posts? Can you use it with a single.php file that sends each post to its own single-[tag or category].php file? I tried this out and get the right single post URL in the location bar but the wrong content on the page.

  7. dragoescu alin says

    Hello, I just creat a new file archive for a new type. The name of new typw it’s firma.
    The archide page it’s call archive-firma.php . All run good but i realy don’t know where i can insert new php code.

    I want to add new code because i use ACF codes.
    please any help ?

    The page code it’s:

    <?php
    the_archive_title( '‘, “ );
    the_archive_description( “, “ );
    ?>

    __( ‚Previous page‘, ‚twentysixteen‘ ),
    ’next_text‘ => __( ‚Next page‘, ‚twentysixteen‘ ),
    ‚before_page_number‘ => “ . __( ‚Page‘, ‚twentysixteen‘ ) . ‚ ‚,
    ) );

    // If no content, include the „No posts found“ template.
    else :
    get_template_part( ‚template-parts/content‘, ’none‘ );

    endif;
    ?>


  8. Rima says

    Hello
    It’s ammazing completely job .
    Congractulations .
    Can you please help me make my own archiving for the kids club .to save all things in safety way .
    Can you help me ??

  9. Essekia Paul says

    I think, when working on really extensive websites with a lot of post types, taxonomies, terms, it is better to manage archives with something like the Elementary plugin.

    This also makes it easier to maintain / separate the content / design of archives.

  10. Hariharakumar says

    My category archives for CPT are displaying in archive.php instead of archive-{CPT}.php what should i do now? please help

    • Rafael Cavalcante says

      Replace {CPT} with the name of your custom post type.

      IE.:
      For „register_post_type(‚brand‘)“, your template will be archive-brand.php

  11. Max says

    WordPress files and their editing was just like a scare forest where i can’t find my desired code. PHP was just like a mountain that can’t be handled by me. but with this blog’s post give a confidence and a boost to start.
    Now i have hand on almost from installing to deploying WordPress website/blog.
    Thanks and Honors for Mr. Balkhi

  12. Jeremy says

    what if I already have a page at yoursite/deals which has content on it. What would the url to my category’s archive page be?

    • Jouke Nienhuis says

      You must not think in real internetlinks or URI as they are called. In WordPress you have an option to rewrite the url, so that it links directly to the post name or category archive. In the address bar, you normally see an address pointing to a file, or if you have it directed to a directory, like it looks in your example, it can take its index.html or index.php file in that directory. But in a WordPress site that address is cloaked and in reality it takes you to archive-deals.php. So no conflicts here. You have to change the thinking form normal linking to an address to a WordPress linking.

  13. linx says

    Never mind, i solved my problem by adding this to my functions.php

    function template_chooser($template)
    {
    global $wp_query;
    $post_type = get_query_var(‚post_type‘);
    if( $wp_query->is_search && $post_type == ‚member‘ )
    {
    return locate_template(‚archive-member.php‘);
    }
    return $template;
    }
    add_filter(‚template_include‘, ‚template_chooser‘);

  14. linx says

    i’ve created an archive-member.php and a search form to filter the results. however everytime my search includes the ’s‘ query string, it displays the results in the archive.php. eg:
    ?post_type=member&s=custom_post_title (displays results in archive.php)
    ?post_type=member&custom_taxonomy=developer (displays results in archive-member.php)

    i want all results that uses ?post_type=member to display in the archive-member.php.

    please help

  15. Davy says

    Thanks, this is really helping me out!

    But I don’t get it the way I want it to. If I look at the examples given at the end, it looks quite similar to what I want to establish.

    I want to show 3 posts per row, with each post the title and thumbnail. When clicking on them there will be a pop-up window. (Html is ready for it so I only need to know how to set this up)

    This archive page is pretty much the same as I displayed my post in each category, but I’m getting stuck here..

    So how do I get this in to the php correctly?

    The page I made before, didn’t showed the posts but an link to archive….

    Can you help me out and tell me how the example pages work?
    They are quite similar to what I want.

    Thanks already,

    Davy

  16. raul says

    Hi there,

    Very helpful article. I’ll be trying it soon.
    I have a related question:

    Would you be able to somehow display the list of custom post archive pages, including not just the title of the pages, as you have it:
    • opinion
    • showcase
    • themes

    …but displaying also a featured image for each archive page, the way you can with post lists?

    • WPBeginner Support says

      Yes sounds do able. One easier approach would be using featured images with the same name as custom post type then you can use something like:

      <?php
      
      $args = array(
         'public'   => true,
         '_builtin' => false
      );
      
      $output = 'names'; // names or objects, note names is the default
      $operator = 'and'; // 'and' or 'or'
      
      $post_types = get_post_types( $args, $output, $operator ); 
      
      foreach ( $post_types  as $post_type ) {
      
         echo '<img src="/path/to/images/' . $post_type . '.png" />';
      }
      
      ?>
      

      Needs improvement but we hope you get the idea.

      Admin

  17. Jamshed says

    Thanks a lot for this.

    It’s really helpful for me to understand the flow of custom post type and how to handle it!
    :)

    thanks again……

  18. Lorenzo says

    Hi,
    Thanks for this tutorials.

    Is possible to display, a Title and Description in a archive-post_type.php page?

    I have lot of archive page in my site and I want to set a good SEO for this page.

    I have create all Custom Post Type with a Custom post type UI plugin and with a Yoast plugin now I can set all SEO option in all custom post type but not in archive page.

    Have a suggest for me?
    Thank you
    Lorenzo

      • Lorenzo says

        Thank you!

        I know this opportunity but I meant :

        with the and code? how I can insert?

        and

        I have a network of blog for administrate multilanguage site (this site are not build by me, I had take this work of administration this site) and archive-post_type.php call a type of Custom Post Type that have the same name for EN site and DE site.

        If add the code inside the archive-post_type.php, the Title and the Description are only in one language and I can’t insert SEO for DE site.

        I know that my site is complicated and built bad but I can’t change this setting and I search a solution for insert SEO title, meta description and meta keyword in all languages that is made my site.

        You think that is impossible for my settings?

      • Shahriar says

        „Go to Settings » Permalinks. Then click save again. This should work then.“

        It’s not working though I tried the way as you said. But same problem like IFTY. 404 error. I am using 3.5

      • Unknown Agent says

        >Go to Settings » Permalinks. Then click save again. This should work then.

        Was also getting a 404 error and this solved it.

        Would never of fixed this other otherwise as such a massively illogical solution

        Thank you!

  19. jim lott says

    To make pagination work you need to call the paged variable into your posts calls.

    query_posts( ‘post_type=xxxxxxx&post_status=published&posts_per_page=10&paged=“ . get_query_var(‚paged‘) ′);

  20. phpadam says

    I can’t get this code to work. In fact, I spent hours with it. I’m not sure what global $query_string actually does, but the code will not work while that is in there. No posts display at all. It’s as though the query doesn’t return any results.

    If I replace this line: global $query_string; query_posts($query_string . „post_type=mentions&post_status=published&posts_per_page=10“);

    with this line query_posts( ‚post_type=mentions&post_status=published&posts_per_page=2‘);

    I get results, but the pagination code does not work. The link changes from previous results to next results, but the result list does not change. The same posts are displayed on every page

  21. RyanMauroDesign says

    @jmdocherty I’m looking for that answer as well. my ’next‘ and ‚previous‘ links bring me to my 404 page.

  22. katarsis20032002 says

    the code above don’t work for me

    the solution i was found there was in the codex

    For example, to set the display order of the posts without affecting the rest of the query string, you could place the following before The Loop:

    global $query_string; query_posts( $query_string . ‚&order=ASC‘ );

    When using query_posts() in this way, the quoted portion of the parameter must begin with an ampersand (&)…

    the & is missing

    this is the original link

    http://codex.wordpress.org/Function_Reference/query_posts

  23. jmdocherty says

    +1 for „does anyone know how to get the ’next‘ and ‚previous‘ links working“. Thanks for the great post though

  24. Mike says

    Thanks for the post, how ever — Your method was returning all products from all categories. I modified it to retrieve only the products in the current category.

    $thisCat = get_category(get_query_var(‚cat‘),false);
    query_posts(„post_type=product&post_status=publish&posts_per_page=10&cat=“.$thisCat->cat_ID);

  25. sander says

    Hi ,
    thanks for the tip!
    although i didnt get it working, until i deleted the „$query_string .“ from the query_posts string.

    why is it in there?

    thanks again

    • Ramsey Stoneburner says

      @sander

      THANK YOU! for posting this! I was following the above tutorial and have been wracking my brain for several hours trying to get it to work. I decided to check the comments in case someone found anything and I got it working thanks to your comment!

    • Stephan Deglow says

      same for me
      @sander thank you

      @wp-beginner: please edit the article and take out that damn $query_string thingy

  26. Ben Tremblay says

    This is a nice step.
    For what I need? Half step.

    I’d love to use this for, say, posts that are parents, and posts that are their children.
    Catch is that a parent’s child can also have children, so that child is both child and parent. And if I can give that one both, I still have to keep the relationship straight … they aren’t apples and oranges in a barrel.

    But thanks!

Eine Antwort hinterlassen

Danke, dass du einen Kommentar hinterlassen möchtest. Bitte beachte, dass alle Kommentare nach unseren kommentarpolitik moderiert werden und deine E-Mail-Adresse NICHT veröffentlicht wird. Bitte verwende KEINE Schlüsselwörter im Namensfeld. Lass uns ein persönliches und sinnvolles Gespräch führen.