Il est possible de customiser les permaliens des custom post type grâce (entre autres) au paramètre "rewrite" de la fonction register_post_type.

Voici ci dessous un exemple de déclaration de custom post type "temoignage"

add_action('init', 'CT_temoignage');
function CT_temoignage()
{
  register_post_type('temoignage', array(
   'label' => __('Témoignages'),
   'singular_label' => __('Témoignage'),
   'public' => true,
   'has_archive' => true,
   'show_ui' => true,
   'capability_type' => 'post',
   'hierarchical' => false,
   'taxonomies'=> array ('category', 'post_tag'),
   'supports' => array('title', 'author', 'editor', 'thumbnail','excerpt','revisions','page-attributes'),
   'menu_position'=>5,
   'rewrite'=>true
  ));
} 

Le paramètre "rewrite" admet comme valeur un boolean ou un tableau, par défaut sa valeur est true, et l'on peut dans l'exemple ci dessus accéder à un article de custom post type "temoignage" (et de slug mon-article) par l'URL :

http://mon-site.fr/temoignage/mon-article

Remplaçons le boolean par un tableau

'rewrite' => array('slug' => 'memo-temoignages','with_front' => true)    

L'article sera alors accessible par l'URL :

http://mon-site.fr/memo-temoignages/mon-article

Le paramètres with_front, quant à lui défini si l'on prend en compte dans l'URL la structure des permaliens par défaut que vous avez défini dans les paramètres des permaliens du site dans "Réglages > Permaliens".

Si votre structure de permaliens par défaut est /blog alors :

  • 'with_front' => true → URL : http://mon-site.fr/blog/memo-temoignages/mon-article
  • 'with_front' => false → URL : http://mon-site.fr/memo-temoignages/mon-article

Voici un article très complet an anglais sur le sujet.

Chaque fois que vous changez la structure des permaliens dans le code, n'oubliez pas de sauver manuellement la structure dans Réglages > Permaliens, pour que les modifications soient prises en compte. 
Une autre solution consiste à appeler flush_rewrite_rules()
0 réponses

Laisser un commentaire

Participez-vous à la discussion?
N'hésitez pas à contribuer!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.