Un petit plugin pour les %category%

J’ai écris un bout de code pour corriger le bug des %category% de WordPress.

Ce petit bout agit comme un patch et permet de corriger d’un bloc tous les bugs relatifs aux permaliens des plugins géniaux, comme Identikit, Ultimate Tag Warriors et plein d’autres.
Il permet aussi de réellement spécifier la base des Catégories. Par défaut, si vous laissiez ce champ vide, WordPress pointe vers une url du type http://example.org/category/uncategorized/. Maintenant, vous pouvez faire http://example.org/uncategorized/.
Enfin il fait des redirection 301 des urls de type category/ vers les nouvelles urls des pages.

Télécharger
Tru Cat Rewrite

Version beta du 14 avril 2007

  • http://www.le-hiboo.com Rod

    j’ai installé … now je vais tenter Identikit :) mais si tu veux faire ZE plugin pour les categories … arrive à faire en sorte de faire disparaitre %category% quand tu appelles une categorie … cf … http://www.le-hiboo.com/category/photos deviendrait http://www.le-hiboo.com/photos/ … mais surtout, que ca marche quand tu fais http://www.le-hiboo.com/photos/page/2/ … car c’est a mon avis d’un inesthetisme beurk :) allez … tentative Identikit !

  • http://www.john-noone.com Xavier

    j’essaie de bidouiller ceci mais c’est quasiment impossible à le faire légèrement, à moins de transformer ce plugin en usine à gaz :(.

    En effet cette fonctionnalité de WordPress est assez mal codée. Elle est basée sur des expressions régulières et elle mélange tout les types de liens. On ne sait jamais si elle va tester une catégorie ou un post ou une pièce-jointe… C’est pour ça qu’ils ont été contraint de mettre des mots-clés dans les liens, du type « machin-chose/ ».

    Idéalement, il faut revoir le code source de cette fonctionnalité pour qu’il teste les permaliens dans un ordre précis que l’on peut spécifier. Et là ça répondra à toutes les attentes :)

  • http://www.john-noone.com Xavier

    Je reviens sur ce que j’ai pu écrire.

    J’ai réussi à écrire un truc sans trop de bidouilles.

  • http://www.le-hiboo.com Rod

    a noter sur mon WP en DEV (WP 2.1.2 et PHP5) j’ai tjs /category/ dans mes liens … et ce avec le plugin activé :)

  • http://www.john-noone.com Xavier

    Même en rechargeant les permalinks ?

  • http://www.le-hiboo.com Rod

    Bien sur :) sinon c’est pas fun :) mais t’as une nouvelle beta du 8 avril ?

  • http://www.john-noone.com Xavier

    ouaip, il faut télécharger la nouvelle beta qui permet de faire tout ça.

    sinon la prochaine gèrera les redirections 301 (pour google). et puis je pense qu’elle sera assez mature pour une version finale.

  • http://www.le-hiboo.com Rod

    bon j’abandonne avec ton plugin, le nouveau bug est fantastique : il me fait apparaitre un joli truc de debug avec pleins de lignes de code :)

  • http://www.le-hiboo.com Rod

    PS : en revanche, le /category/ disparait … mais a la place g un enorme debug de style

    WP Object
    (
    [public_query_vars] => Array
    (
    [0] => m
    [1] => p
    [2] => posts
    [3] => w
    [4] => cat
    [5] => withcomments
    [6] => withoutcomments
    [7] => s
    [8] => search
    [9] => exact
    [10] => sentence
    [11] => debug
    [12] => calendar
    [13] => page
    [14] => paged
    [15] => more
    [16] => tb
    [17] => pb
    [18] => author
    [19] => order
    [20] => orderby
    [21] => year
    [22] => monthnum
    [23] => day
    [24] => hour
    [25] => minute
    [26] => second
    [27] => name
    [28] => category_name
    [29] => feed
    [30] => author_name
    [31] => static
    [32] => pagename
    [33] => page_id
    [34] => error
    [35] => comments_popup
    [36] => attachment
    [37] => attachment_id
    [38] => subpost
    [39] => subpost_id
    [40] => preview
    [41] => robots
    [42] => request_avatar
    [43] => avatar_type
    [44] => avatar_key
    [45] => avatar_size
    [46] => identikit_css
    [47] => rs_discuss_where
    [48] => rs_discuss_forum
    [49] => rs_discuss_topic
    [50] => rs_discuss_page
    [51] => rs_discuss_post
    [52] => rs_discuss_feed
    [53] => rs_discuss_user
    [54] => rs_discuss_search
    [55] => tag
    [56] => request_avatar
    [57] => avatar_type
    [58] => avatar_key
    [59] => avatar_size
    [60] => identikit_css
    [61] => rs_discuss_where
    [62] => rs_discuss_forum
    [63] => rs_discuss_topic
    [64] => rs_discuss_page
    [65] => rs_discuss_post
    [66] => rs_discuss_feed
    [67] => rs_discuss_user
    [68] => rs_discuss_search
    [69] => tag
    [70] => request_avatar

    …. et les lignes sont nombreuses :)

  • http://www.john-noone.com Xavier

    T’inkiete c’est juste le debug (pour voir ce qu’il fait).

    j’ai mis une nouvelle version du plugin, amputé de ce debug. Cette version gère les redirections 301. Ainsi toutes les urls du type category/ sont concentrées vers la nouvelle, afin d’augmenter le page rank dans Google.

  • http://www.le-hiboo.com Rod

    nan mais ca marche nickel !!! du coup je crois meme ke je vais tout de suite mettre le plugin sur mon blog en prod :)

  • http://www.le-hiboo.com Rod

    bon je me suis avancé trop vite … quand c’est /page/2/ … ou + d’ailleurs, 404

  • http://www.john-noone.com Xavier

    c’est surement une question d’affinage du truc, mais j’y suis presque.
    peux-tu me donner la structure des urls qui ne fonctionnent pas ?

  • http://www.le-hiboo.com Rod

    ben kan c

    domaine.com/nom-categorie/page/numero-de-page/

  • http://www.john-noone.com Xavier

    à la ligne 156 tu dois avoir
    if($vars[‘page’]) {
    $vars[‘paged’] = preg_replace(‘`[^0-9]`’, », $vars[‘page’]);
    }

    Peux-tu remplacer ce code par celui-là ?
    if($vars[‘page’] && empty($vars[‘name’]) ) {
    $vars[‘paged’] = preg_replace(‘`[^0-9]`’, », $vars[‘page’]);
    unset($vars[‘page’]);
    }

    Si ça ne fonctionne pas, c’est qu’une expression régulière courcircuite le plugin. je vais faire appel au KGB pour que le plugin fonctionne au pas.

  • http://www.john-noone.com Xavier

    Bon, j’ai remis une nouvelle version en ligne.

    Est-ce que celle-là fonctionne chez toi ?

  • http://www.le-hiboo.com Rod

    j’abandonne :) non seulement ca ne fonctionne pas en /page/2 … mais en + la page 1 se transforme en url//category/

    avec un double slash donc :)

  • http://www.john-noone.com Xavier

    Putain mec, à force de m’arracher les cheveux je n’en aurait bientôt plus sur le caillou !
    Va falloir qu’on se fasse une soirée des bugs et des pizzas.

  • http://www.le-hiboo.com Rod

    J’ai desactivé le plugin : il rajoutait pas moins de 50 requetes supplementaires lorsque j’affichais mes categories sur une page :) (oui oui, 50 !)

  • Fleuretta

    Bonjour,

    J’ai ajouté ton plugin et le seul bug que j’ai c’est le double // qui s’affiche.

    As-tu trouvé moyen de corriger ce petit bug?

    Merci