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

Rigueur. Et passion !

Ne dites pas à ma mère que je suis artisan en architecture de l'information appliquée aux sites web : elle croit que je suis webdesigner, intégrateur HTML & CSS, rédacteur web, formateur NTIC et consultant en webmarketing depuis 2001 ! Voulez-vous en savoir plus ?

Le blog de l'intégrateur web

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 =^__^=

Articles sur le même sujet

PS : Le respect de la vie privée sur internet est important : j'ai décidé d'échanger mon bouton Like de Facebook par un bouton Faire un don de Paypal car
Il n'y pas d'amour, il n'y a que des preuves d'amour (Jean Cocteau) ;) Merci d'avance.



5 commentaires pour “WordPress — Ajouter des règles de réécriture pour les Custom Post Type”

  1. Sinon, ca marche aussi avec les options « has_archive » et « rewrite » (slug) lors de la déclaration du « custom post type »

    http://codex.wordpress.org/Function_Reference/register_post_type#Arguments

  2. […] nous explique comment réaliser des réécritures de « Custom Post Type ». C’est bien utile lorsque vous en mettez en place sur votre site et que vous rencontrez des […]

  3. […] nous explique comment réaliser des réécritures de « Custom Post Type ». C’est bien utile lorsque vous en mettez en place sur votre site et que vous rencontrez des […]

  4. dev.xiligroup dit :

    add_rewrite_rule, add_permastruct, add_rewrite_tag sont des fonctions qui sont plus simples à utiliser et à activer dans un filtre ‘init’… quand on ne veut pas utiliser les règles activés lors de la déclaration de la taxinomie ou du custom post. Le plugin Rewrite analyzer permet de vérifier le bon fonctionnement des nouvelles règles de réécriture

  5. Akian dit :

    Un grand merci pour cette solution simple et rapide qui met fin à deux heures et demie de recherches infructueuses !

    Est-il prévu que ce problème soit résolu en natif dans un futur proche ?



Colophon

CSS & Webdesign est une publication irrégulomadaire à tendance hebdomadaire
éditée par Bruno Bichet qui carbure à WordPress et au café équitable.
Tous droits réservés © 2006 - 2011.

Contactez l'auteur du site