Machen Sie benutzerdefinierte Post-Typ-Anzeige als eine Seite

Ich versuche, meine benutzerdefinierte Post-Typ-Anzeige am Frontend so zu gestalten, als wäre es eine Seite. Abhängig vom Thema, wird es nicht das Datum, Autor, etc … haben

Ich habe mir eine Vorlage wie ‘single- .php’ angesehen. Aber das ist zu statisch, um für ein Design zu arbeiten.

Ist es möglich, das aktuelle Design so zu definieren, dass der benutzerdefinierte Post-Typ genauso angezeigt wird wie eine normale Seite?

Vielen Dank!

Solutions Collecting From Web of "Machen Sie benutzerdefinierte Post-Typ-Anzeige als eine Seite"

Es gibt eine Reihe von Vorlagenfiltern, mit denen Sie die Vorlagenhierarchie ändern können. Sehen Sie sich die Vorlagenhierarchieseite an den bereitgestellten Filtern und dem Beispiel an.

Hier ist eine modifizierte Version des Beispiels, das single_template . Es sucht nach einem bestimmten benutzerdefinierten Post-Typ und lädt die Vorlage ” page.php des Themas, sofern diese vorhanden ist:

 function wpa54721_single_template( $templates = '' ){ // get data for the current post and check type $this_post = get_queried_object(); if( 'my_custom_post_type' == $this_post->post_type ): // $templates could be empty, a string, or an array, // we need to check and alter it appropriately if( !is_array( $templates ) && !empty( $templates ) ): // it's a string $templates = locate_template( array( 'page.php', $templates ), false ); elseif( empty( $templates ) ): // it's empty $templates = locate_template( 'page.php', false ); else: // it's an array $new_template = locate_template( array( 'page.php' ) ); if( !empty( $new_template ) ) array_unshift( $templates, $new_template ); endif; endif; return $templates; } add_filter( 'single_template', 'wpa54721_single_template' ); 

Dies ist etwas, mit dem ich mich jeden Tag beschäftigen muss, wenn ich Designs erstelle, die viele benutzerdefinierte Post-Typen verwenden.

Grundsätzlich möchten wir, dass unsere benutzerdefinierten Beitragstypen dieselben functionen wie ein normaler Post oder eine normale Seite haben. Dies bedeutet Kategorien, Archive usw.

Zuerst sollten Sie alle Ihre regulären Seiten erstellen. Das heisst:

  • Archivieren-cpt.php
  • Kategorien-cpt.php
  • Einzel-cpt.php
  • etc..

Nun, wenn Sie es richtig gemacht haben, navigieren Sie zu Seiten wie /custom-post-type/page/2/ Sie sollten Ihr Archiv sehen usw.

Jetzt besteht der Trick darin, dass die Nutzer Ihren benutzerdefinierten Beitragstyp auf der Startseite anstelle der regulären Blogposts sehen.

Dazu sollten Sie eine Seitenvorlage erstellen . Diese Seitenvorlage wird am Ende wie index.php oder archive.php funktionieren, wo sie 10 (oder mehr) Beiträge auflisten wird. Wenn Sie es erstellt haben, erstellen Sie eine neue Seite auf der Site und legen Sie die Seitenvorlage auf Ihre neue Vorlage fest.

Danach gehen Sie in Einstellungen -> Lesen und wählen Sie diese Seite als Ihre Startseite. Sie sollten nun eine Liste der neuesten benutzerdefinierten Posts haben, die Sie hinzugefügt haben.