Verwenden Sie die WordPress-Seite anstelle des Posttyp-Archivs

14

Es tut mir leid, wenn dies ein Duplikat ist. Ich kann keine Antwort finden.

Wie kann ich eine benutzerdefinierte Archivseite vom Typ "Post" in eine von Menschenhand erstellte WordPress-Seite umschreiben?

Beispielsweise:

  • Einzelne Seite: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Archivseite: http://www.mywebsite.com/cool-post-type/

Ich möchte http://www.mywebsite.com/cool-post-type/umschreiben http://www.mywebsite.com/about-cool-post-types/.

Kann ich das einfach mit htaccess machen und wie würde die Syntax lauten? (Ich bin nicht gut in htaccess!)

Das funktioniert nicht:

RewriteRule ^cool-post-type\/\?$ /about-cool-post-types [L]

Oder muss ich das im WordPress-Quellcode machen? Ich will nicht

Warwick
quelle

Antworten:

16

Das ist eigentlich ziemlich einfach. Wenn Sie Ihren Beitragstyp mit register_post_type deklarieren , müssen Sie ein neues Argument für 'has_archive' hinzufügen.

Sie fügen also etwas hinzu, um Folgendes zu bewirken:

'has_archive' => 'about-cool-post-types'

Gehen Sie dann zu Ihren Einstellungen> Permalinks, um sie zu löschen, und es sollte funktionieren. Ich habe es lokal getestet. Auf diese Weise kann Ihre Archivseite anscheinend automatisch unter einer anderen URL generiert werden. Dann sollten Sie in der Lage sein, eine Seite am CPT-Slug zu erstellen.

socki03
quelle
Dies funktionierte nicht mehr, aber ich konnte es beheben, indem ich 'has_archive' einem beliebigen Text zuwies und den Slug meiner Seite in den Slug der Kategorie umbenannte.
Warwick
7

Es gibt jetzt auch ein einfaches Plugin für 1 Datei, das von den HumanMade-Leuten erstellt wurde.

https://github.com/humanmade/page-for-post-type

(Meta: Ich weiß, dass Antworten mit Links im Allgemeinen nicht gut sind, aber ich möchte nicht nur den Quellcode für dieses Ding kopieren und in eine Antwort einfügen. Was ist die beste Strategie für diese Art von Dingen?)

RichardTape
quelle