Réécrire Slug pour les pages d'archive CPT au nom pluriel de Slug

11

J'ai un type de message personnalisé avec le slug réécrit de plugincréer la structure d'url de http://site.com/plugin/plugin-slug/ . Ce qui rend l'archive CPT comme http://site.com/plugin/

Je voudrais le réécrire, sans utiliser une page et un modèle de page personnalisé, pour utiliser http://site.com/plugins/ (qui est le labels=>Namedans le CPT). tout en gardant le slug pour les messages uniques car /plugin/ cela devrait également prendre en charge des choses comme `/ plugins / page / 21 - ce qu'il fait actuellement.

alpha1
la source

Réponses:

21

Lorsque vous enregistrez le type de publication, définissez l'argument 'has_archive'sur une chaîne, dans votre cas plugins.

Le bloc doc pour register_post_type()dit:

@type bool|string $has_archive
S'il doit y avoir des archives de type post, ou s'il s'agit d'une chaîne, le fichier d'archive à utiliser. Générera les règles de réécriture appropriées si $rewriteest activé. Par défaut false.

Exemple réduit:

register_post_type( 'plugin', [ 'has_archive' => 'plugins' ] );
fuxia
la source
6
Pour actualiser les règles de réécriture pour un type de publication personnalisé que vous mettez à jour, visitez Paramètres> Permaliens . Sur la base de l'exemple ci-dessus, si vous ne le faites pas, ce /pluginsera toujours le fichier d'archive et /pluginsne fonctionnera pas encore.
Mark Rummel