Page-CPT.php leitet zu Archiv oder single.php um

Ich habe einen benutzerdefinierten Post-Typ namens cpt_top_ten_list eingerichtet. Ich versuche, eine Seite einzurichten, auf der alle meine benutzerdefinierten Beitragstypen angezeigt werden.

Ich habe meine neue Seite page-top-ten.php genannt und oben auf der Seite ein Vorlagen-Tag hinzugefügt. Eine Seite im Dashboard mit der Bezeichnung “Top Ten List” erstellt und dieser Seite meine neue Vorlage zugewiesen.

Jetzt, wenn ich auf die Seite gehe, scheint es mich zu einer Archivseite des benutzerdefinierten Post-Typs umzuleiten. Wenn ich die Archivierungsfunktionen für das cpt abstelle, leite ich mich auf page.php um.

Wenn ich flush_rewrite_rules(); addiere flush_rewrite_rules(); in functions.php funktioniert meine neue benutzerdefinierte Seite, aber keine der anderen Seiten funktioniert. Wenn ich die flush_rewrite_rules(); Alle Seiten funktionieren außer meinem cpt.

Ich habe versucht, meine Permalink-Einstellungen zu aktualisieren, indem ich auf die Seite gehe und meine Einstellungen erneut speichere.

Ich bin verwirrt darüber, was hier vor sich geht. Warum sollte meine cpt-Seite nicht als solche erkannt werden? Es ist sehr seltsam.

 function register_top_10_list_custom_post_type() { // All the labels $names = array( 'name' => 'Top 10 List', 'singular_name' => 'Top 10 List', 'add_new' => 'Add New List', 'add_new_item' => 'Add New List', 'edit_item' => 'Edit List', 'new_item' => 'New List', 'all_items' => 'All Lists', 'view_item' => 'View List', 'search_items' => 'Search Lists', 'not_found' => 'No lists found', 'not_found_in_trash' => 'No lists found in Trash', 'parent_item_colon' => '', 'menu_name' => 'Top 10 Lists' ); //CPT's paramters $args = array( 'labels' => $names, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'show_in_menu' => true, 'query_var' => true, 'menu_icon' => get_stylesheet_directory_uri() . '/inc/cpt/images/top-10-icon.png', /* the icon for the custom post type menu */ 'capability_type' => 'post', 'has_archive' => true, 'hierarchical' => false, 'menu_position' => null, 'taxonomies' => array('category', 'post_tag'), 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ) ); //register CPT register_post_type( 'cpt_top_ten_list', $args ); } //initiate CPT add_action( 'init', 'register_top_10_list_custom_post_type' ); 

Solutions Collecting From Web of "Page-CPT.php leitet zu Archiv oder single.php um"

Sie vermissen das in Ihrem Code und die Namen Ihrer Vorlagenhierarchie scheinen falsch zu sein.

page-cpt.php bezieht sich auf eine Seitenvorlage und nicht auf ein CPT-Archiv.

 'rewrite' => array( 'slug' => 'top-ten-list', 'with_front' => false ), 

Angenommen, Sie verwenden die Slug Top-Ten-Liste

Sie sollten Ihre Archivvorlage archive-top-ten-list.php benennen

Sie sollten Ihre einzelne CPT-Vorlage single-top-ten-list.php benennen

Hier ist ein Beispiel für den richtigen Code, der getestet wurde und funktioniert, den Sie als Leitfaden verwenden können

Keine Notwendigkeit, flush_rewrite_rules () hinzuzufügen; Sie können Ihre Permalinks einfach erneut speichern.

Sie können auch Dashicons verwenden, anstatt ein Bild für Ihr Menüsymbol hinzuzufügen.

Sie können auch benutzerdefinierte Taxonomietypen hinzufügen, mit denen Sie Kategorien für Ihren CPT erstellen können.