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

  • 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 ... www.le-hiboo.com/category/photos deviendrait www.le-hiboo.com/photos/ ... mais surtout, que ca marche quand tu fais www.le-hiboo.com/photos/page/2/ ... car c'est a mon avis d'un inesthetisme beurk :) allez ... tentative Identikit !
  • johnnoone
    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 :)
  • johnnoone
    Je reviens sur ce que j'ai pu écrire.

    J'ai réussi à écrire un truc sans trop de bidouilles.
  • 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é :)
  • johnnoone
    Même en rechargeant les permalinks ?
  • Rod
    Bien sur :) sinon c'est pas fun :) mais t'as une nouvelle beta du 8 avril ?
  • johnnoone
    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.
  • 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 :)
  • 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 :)
  • johnnoone
    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.
  • 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 :)
  • Rod
    bon je me suis avancé trop vite ... quand c'est /page/2/ ... ou + d'ailleurs, 404
  • johnnoone
    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 ?
  • Rod
    ben kan c

    domaine.com/nom-categorie/page/numero-de-page/
  • johnnoone
    à la ligne 156 tu dois avoir
    <coolcode lang="php" linenum="false">if($vars['page']) {
    $vars['paged'] = preg_replace('`[^0-9]`','', $vars['page']);
    }</coolcode>

    Peux-tu remplacer ce code par celui-là ?
    <coolcode lang="php" linenum="false">if($vars['page'] && empty($vars['name']) ) {
    $vars['paged'] = preg_replace('`[^0-9]`','', $vars['page']);
    unset($vars['page']);
    }</coolcode>

    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.
  • johnnoone
    Bon, j'ai remis une nouvelle version en ligne.

    Est-ce que celle-là fonctionne chez toi ?
  • 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 :)
  • johnnoone
    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.
  • 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
blog comments powered by Disqus