J’ai remarqué que Wordpress ne fait pas toujours de belles URL.

Exemples :
- un titre avec un url du genre “google.com”, wordpress générera une url du type “googlecom”.
- Il vire aussi les “…”, genre “Je suis…fatigué” => “Je suisfatigue”
- Il vire les ‘, ce qui fait des mots “c’étais” => “cetais”
- Il vire les /, avec les dates ça fait pas top.

J’ai refais la méthode sanitize_title_with_dashes de wp-includes/formatting.php disponible ici :

function sanitize_title_with_dashes($str) {
/* lower letters */
if (seems_utf8($str)) {
if (function_exists('mb_strtolower')) {
$str = mb_strtolower($str, 'UTF-8');
}
//$str = utf8_uri_encode($str, 200);
}
else
$str = strtolower($str);
/* remove accents */
$str = remove_accents($str);
/* keep only letters/numbers */
$letters_ = "abcdefghijklmnopqrstuvwxyz0123456789";
$letters = Array();
for ($i=0;$i<strlen($letters_);$i++) {
$letters[] = substr($letters_,$i,1);
}
$tmp = $str;
$str = "";
for ($i=0;$i<strlen($tmp);$i++) {
$letter = substr($tmp,$i,1);
if(in_array($letter,$letters))
$str .= $letter;
else
$str .= "-";
}
/* remove double - */
while(strpos($str,"--") || substr($str,0,2) == '--')
$str = str_replace("--","-",$str);

/* trim the - at the begin or the end */
if(substr($str,0,1) == "-")
$str = substr($str,1,strlen($str) - 1);
if(substr($str,strlen($str)-1,1) == "-")
$str = substr($str,0,strlen($str) - 1);
return $str;
}

Cela ne s’appliquera évidemment qu’aux nouveaux posts.. il faut régénérer toutes les anciennes urls (les post_name dans la DB) à partir des titres (post_title).

Est-ce que quelqu’un sait comment on fait pour avoir des espaces entre les phrases…

4 commentaires

  1. merci

    Merci, c’est interessant.

  2. Edouard

    slt michael!

    j’aimerais te contacter pr un projet et l’adresse mail fourni sur la page a propos ne semble pas fonctionner…

    pourrais-tu m’envoyer tes coordonées?

    edouard

  3. Michaël

    Si elle fonctionne, il faut juste remplacer les _at_ par @ et (point) par un .

  4. @deline

    Bonjour,

    Décidément tu es incroyable : le dimanche tu annonces que tu passeras peut-être sous wordpress, le mardi tu as passé ton site sous wordpress sans changer le design et tu proposes déjà des améliorations !

    Wordpress va vraiment gagner à t’avoir parmi ses utilisateurs.

    Mon rêve : que tu proposes une adaptation de picsengine sous wordpress !

Laisser un commentaire