WordPress — Ajouter des règles de réécriture pour les Custom Post Type

Les types d’articles personnalisés sont très pratiques. Comme l’explique très bien Jérémy Thomas dans son introdution à WordPress 3, les Custom Post Types permettent d’élargir les différents types de contenus pris en charge depuis WordPress 3.0. A côté des Pages, des Posts ou des Liens, vous pourrez ajouter le type Porfolios, Projets ou Petites Annonces. Le système mis en place fonctionne bien, mais je suis tombé dernièrement sur un problème de page d’erreur 404 lié à la  réécriture d’URL en voulant affichant un article issu d’un Custom Post Type. Avec les permaliens par défaut, tout fonctionne, tandis qu’avec une structure de permaliens personnalisés, ce n’est plus le cas.

Réécriture d’URL

Pour y remédier, ajoutez-donc une fonction de réécriture (Add Rewrite Rules for Custom Post Types) dans votre fichier functions.php :

add_filter('generate_rewrite_rules', 'customposttype_rewrites');
function customposttype_rewrites($wp_rewrite) {
    $newrules = array();
    $newrules['mycustomposttype/?$'] = 'index.php?post_type=mycustomposttype';
    $wp_rewrite->rules = $newrules + $wp_rewrite->rules;
}

Remplacez ensuite les deux occurences de mycustomposttype par le nom de votre Custom Post Type (ex. petiteannonce) et le chat est dans le sac =^__^=