Utiliser une page WordPress au lieu d'une archive de type de publication


15

Désolé s'il s'agit d'un doublon - je ne trouve pas de réponse.

Comment réécrire une page d'archive de type de publication personnalisée sur une page WordPress `` créée par l'homme ''?

Par exemple:

  • Une seule page: http://www.mywebsite.com/cool-post-type/awesome-single-post/
  • Page d'archive: http://www.mywebsite.com/cool-post-type/

Je veux http://www.mywebsite.com/cool-post-type/réécrire http://www.mywebsite.com/about-cool-post-types/.

Puis-je simplement faire cela avec htaccess et quelle serait la syntaxe? (Je ne suis pas bon en htaccess!)

Cela ne fonctionne pas:

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

Ou dois-je le faire dans le code source de WordPress? Je ne veux pas!

Réponses:


16

Celui-ci est en fait assez facile. Lorsque vous déclarez votre type de publication à l'aide de register_post_type , vous devez ajouter un nouvel argument pour 'has_archive'.

Vous ajouterez donc quelque chose à l'effet de:

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

Ensuite, allez dans Paramètres> Permaliens pour les vider et cela devrait fonctionner. Je l'ai testé localement, et cela semble être le moyen de générer automatiquement votre page d'archive à une URL différente. Ensuite, vous devriez pouvoir créer une page sur le slug du CPT.


Cela a cessé de fonctionner mais j'ai réussi à le corriger en affectant 'has_archive' à du texte arbitraire et en renommant le slug de ma page en slug de catégorie.
Warwick

7

Il y a aussi un plugin simple à 1 fichier pour cela maintenant, par le folk HumanMade;

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

(Meta: Je sais que les réponses avec des liens ne sont généralement pas géniales, mais je ne veux pas simplement copier et coller le code source de cette chose dans une réponse. Quelle est la meilleure stratégie pour ce type de chose?)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.