Wie legt man die Hauptseite eines benutzerdefinierten Post-Typs fest?

Ich habe gerade einen neuen benutzerdefinierten Beitragstyp erstellt, der alle einzelnen Beiträge des Ereignisses im Hosting enthält.

Ich möchte die Slugs für jeden Beitrag haben: myurl.co/conference/programitem

Ich habe bereits eine Seite mit der URL: myurl.co/conference/ welche ich die Hauptseite dieses bestimmten Slugs sein möchte. (Auf dieser Seite werden bereits einige andere Informationen über die Veranstaltung angezeigt und sie enthält Links zu den einzelnen Programmpunkten usw.)

Allerdings habe ich jetzt einen Konflikt, dass, sobald ich den benutzerdefinierten Beitragstyp erstellt habe, myurl.co/conference/ zum ersten Post des neu erstellten Post-Typs statt der bereits vorhandenen Seite führt, die ich als Hauptseite verwenden wollte .

tldr; Wie verhindere ich, dass die URL myurl.co/conference/ zum ersten Post geht und stattdessen zu der Seite geht, die ich dafür verwenden wollte? Und habe myurl.co/conference/programitem zu ihren eigenen Posts gehen.

ps. Ich möchte die URL nicht ändern, um zum Beispiel myurl.co/conference0/

Solutions Collecting From Web of "Wie legt man die Hauptseite eines benutzerdefinierten Post-Typs fest?"

Wenn Sie den benutzerdefinierten Post-Typ registrieren, müssen Sie has_archive in den Slug has_archive , in dem das Archiv has_archive . Sie müssen auch die rewrite auf das Slug-Präfix rewrite . Es ist wahrscheinlich einfacher, den Code zu verstehen als meine Formulierung:

Ihr Code sollte nun ungefähr so ​​aussehen:

 register_post_type('conference', ... 'public' => true, ); 

Sie müssen es aktualisieren auf:

 register_post_type('conference', ... 'public' => true, 'has_archive' => 'conference', 'rewrite' => array('slug' => 'conference'), ); 

Möglicherweise müssen Sie zuerst unregister_post_type , um es zu löschen, und sich dann erneut bei Ihrer aktualisierten function registrieren. Nachdem die neue Version registriert wurde, besuchen Sie Ihre Permalinks-Seite, um Permalinks zu aktualisieren, und Sie sollten dann sowohl ein Archiv bei myurl.co/conference als auch einzelne Posts bei URLs wie myurl.co/conference/program-item-slug haben .