Caractères spéciaux / accents dans URL Wordpress
18 messages
• Page 1 sur 2 • 1, 2
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Caractères spéciaux / accents dans URL Wordpress
Bonjour à la communauté,
je viens vers vous pour vous demander de l'aide pour permettre les caractères avec accents dans les permalinks d'un wordpress.
-> oui je sais c'est pas bien pour le référencement, pas la peine de me le dire
J'ai cherché pas mal sur le net et j'ai rien trouvé même si google.com (en même temps les ricains n'ont pas d'accent)
Donc si quelqu'un connait une méthode, ou a l'adresse d'un tuto je suis preneur !
Merci
je viens vers vous pour vous demander de l'aide pour permettre les caractères avec accents dans les permalinks d'un wordpress.
-> oui je sais c'est pas bien pour le référencement, pas la peine de me le dire
J'ai cherché pas mal sur le net et j'ai rien trouvé même si google.com (en même temps les ricains n'ont pas d'accent)
Donc si quelqu'un connait une méthode, ou a l'adresse d'un tuto je suis preneur !
Merci
-

Marie-Aude - Modérateur

- Messages: 11872
- Inscription: 5 Juin 2006
Re: Caractères spéciaux / accents dans URL Wordpress
A tes risques et périls (parce que "plus joli" ça vaut dire aussi pas mal de risques de problèmes liés à ton référencement) mais il va falloir que tu te fasses un hook à la mimine sur la routine de sanitization de l'url. Pour comprendre comment elle fonctionne regarde les plugins qui gère la translittération des umlauts dans les permalinks (cherche dans le repository umlaut + permalink ou german + permalink ou detusche permalink je ne sais plus)
Maintenant on te le dit "c'est une bêtise" après tu fais comme tu veux
Maintenant on te le dit "c'est une bêtise" après tu fais comme tu veux
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Re: Caractères spéciaux / accents dans URL Wordpress
J'ai installer les plugins Marie-Aude. Ca ne converti pas les accents dans l'url quand j'en met donc c'est pas mal mais quand je publie ou que je visualise le brouillon ca me met "Aucun résultat page non trouvé" une 404 .
Est ce qu'il y a quelque chose d'autre à faire ? au niveau du htaccess ya rien a changé je sais pas ? c'est bizarre car quand je clique sur le lien, ya bien l'url avec accent mais ca va sur une 404
Est ce qu'il y a quelque chose d'autre à faire ? au niveau du htaccess ya rien a changé je sais pas ? c'est bizarre car quand je clique sur le lien, ya bien l'url avec accent mais ca va sur une 404
-

Marie-Aude - Modérateur

- Messages: 11872
- Inscription: 5 Juin 2006
Re: Caractères spéciaux / accents dans URL Wordpress
Je ne t'ai pas dit de les installer, je t'ai dit de les regarder pour comprendre comment faire ce que tu veux faire ^^
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Re: Caractères spéciaux / accents dans URL Wordpress
Ah ! ben en faite oui j'ai regardé le code des plugin mais j'ai rien compris :'-)
lib.php :
- Code: Tout sélectionner
require('lib.php');
add_filter('sanitize_title', 'transliterate_aeoeuess', 5, 3);
lib.php :
- Code: Tout sélectionner
function transliterate_aeoeuess($title, $raw_title = NULL, $context = 'query') {
// Hacky hook due to hacky core, see
// http://core.trac.wordpress.org/ticket/16905
if ($raw_title != NULL) {
$title = $raw_title; // undo remove_accents
}
$title = str_replace('Ä', 'ae', $title);
$title = str_replace('ä', 'ae', $title);
$title = str_replace('Ö', 'oe', $title);
$title = str_replace('ö', 'oe', $title);
$title = str_replace('Ü', 'ue', $title);
$title = str_replace('ü', 'ue', $title);
$title = str_replace('ẞ', 'ss', $title);
$title = str_replace('ß', 'ss', $title);
$title = str_replace('é', 'e', $title);
$title = str_replace('ê', 'e', $title);
$title = str_replace('É', 'Z', $title);
$title = str_replace('è', 'e', $title);
$title = str_replace('à', 'a', $title);
$title = str_replace('Ê', 'e', $title);
if ($context == 'save') {
$title = remove_accents($title); // redo remove_accents
}
return $title;
}
-

Marie-Aude - Modérateur

- Messages: 11872
- Inscription: 5 Juin 2006
Re: Caractères spéciaux / accents dans URL Wordpress
add_filter('sanitize_title', 'transliterate_aeoeuess', 5, 3);
En gros c'est simple, ici tu as le hook de wordpress sur lequel tu dois agir "sanitize_title'
Tu vas voir dans le core de wordpress comment ils font, et tu fais comme le monsieur une petite routine pour "ne pas remplacer" les caractères accentués (donc en gros pour remplacer les caractères accentués par eux mêmes, ou alors pour leur équivalent comme dans Wikipedia)
Après il faut voir ce que ça donne :
- dans les différentes fonctions utilisant les permaliens
- dans le flux rss
- dans la gestion des urls des commentaires.
En gros c'est simple, ici tu as le hook de wordpress sur lequel tu dois agir "sanitize_title'
Tu vas voir dans le core de wordpress comment ils font, et tu fais comme le monsieur une petite routine pour "ne pas remplacer" les caractères accentués (donc en gros pour remplacer les caractères accentués par eux mêmes, ou alors pour leur équivalent comme dans Wikipedia)
Après il faut voir ce que ça donne :
- dans les différentes fonctions utilisant les permaliens
- dans le flux rss
- dans la gestion des urls des commentaires.
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Re: Caractères spéciaux / accents dans URL Wordpress
Ok oui on veut faire comme wikipedia pour les url
on a pas de flux rss et on a pas de commentaire non plus donc ca simplifie beaucoup de chose, je vais regarder tout ça !
Merci Marie-Aude
on a pas de flux rss et on a pas de commentaire non plus donc ca simplifie beaucoup de chose, je vais regarder tout ça !
Merci Marie-Aude
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Re: Caractères spéciaux / accents dans URL Wordpress
Je pense que tout vient de là dans include/formatting.php
j'ai peur de touché à ça c'est quoi les chr ?
- Code: Tout sélectionner
if (seems_utf8($string)) {
$chars = array(
// Decompositions for Latin-1 Supplement
chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
chr(195).chr(134) => 'AE',chr(195).chr(135) => 'C',
chr(195).chr(136) => 'E', chr(195).chr(137) => 'E',
chr(195).chr(138) => 'E', chr(195).chr(139) => 'E',
chr(195).chr(140) => 'I', chr(195).chr(141) => 'I',
chr(195).chr(142) => 'I', chr(195).chr(143) => 'I',
chr(195).chr(144) => 'D', chr(195).chr(145) => 'N',
chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
chr(195).chr(158) => 'TH',chr(195).chr(159) => 's',
chr(195).chr(160) => 'a', chr(195).chr(161) => 'a',
chr(195).chr(162) => 'a', chr(195).chr(163) => 'a',
chr(195).chr(164) => 'a', chr(195).chr(165) => 'a',
chr(195).chr(166) => 'ae',chr(195).chr(167) => 'c',
chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
chr(195).chr(176) => 'd', chr(195).chr(177) => 'n',
chr(195).chr(178) => 'o', chr(195).chr(179) => 'o',
chr(195).chr(180) => 'o', chr(195).chr(181) => 'o',
chr(195).chr(182) => 'o', chr(195).chr(182) => 'o',
chr(195).chr(185) => 'u', chr(195).chr(186) => 'u',
chr(195).chr(187) => 'u', chr(195).chr(188) => 'u',
chr(195).chr(189) => 'y', chr(195).chr(190) => 'th',
chr(195).chr(191) => 'y',
// Decompositions for Latin Extended-A
chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
chr(197).chr(136) => 'n', chr(197).chr(137) => 'N',
chr(197).chr(138) => 'n', chr(197).chr(139) => 'N',
chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
// Decompositions for Latin Extended-B
chr(200).chr(152) => 'S', chr(200).chr(153) => 's',
chr(200).chr(154) => 'T', chr(200).chr(155) => 't',
// Euro Sign
chr(226).chr(130).chr(172) => 'E',
// GBP (Pound) Sign
chr(194).chr(163) => '');
$string = strtr($string, $chars);
} else {
// Assume ISO-8859-1 if not UTF-8
$chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
.chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
.chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
.chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
.chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
.chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
.chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
.chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
.chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
.chr(252).chr(253).chr(255);
$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
$string = strtr($string, $chars['in'], $chars['out']);
$double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
$double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
$string = str_replace($double_chars['in'], $double_chars['out'], $string);
j'ai peur de touché à ça c'est quoi les chr ?
-

Marie-Aude - Modérateur

- Messages: 11872
- Inscription: 5 Juin 2006
Re: Caractères spéciaux / accents dans URL Wordpress
fonction php, chr (ça doit être le caractère correspondant au code ascii)
"vous n'avez pas de flux" ... vous avez fait comment vous les avez désactivé ?
et ça c'est quoi
-http://www.espace-musculation.com/feed/ ?
ohhhh un flux standard de wordpress
"vous n'avez pas de flux" ... vous avez fait comment vous les avez désactivé ?
et ça c'est quoi
-http://www.espace-musculation.com/feed/ ?
ohhhh un flux standard de wordpress
-

Heroes69 - WRInaute discret

- Messages: 173
- Inscription: 23 Mar 2010
Re: Caractères spéciaux / accents dans URL Wordpress
j'ai fais quelque modifs, quand je prévisualisé un brouillon avec des accents ca m'affiche la bonne url avec les accents et ça fait comme si ça marchais mais quand je publie ya de nouveau l'erreur 404
edit : a oui un flux ?? gloups
edit : a oui un flux ?? gloups
-

Marie-Aude - Modérateur

- Messages: 11872
- Inscription: 5 Juin 2006
Re: Caractères spéciaux / accents dans URL Wordpress
(chuis sympa, je suis allée le voir sur Safari, sans Google Bar)
La suite en MP ^^
Bon blague à part, désactive WP cache, il ne doit pas aimer tout ça
Et tronque tes articles dans ton flux rss, ça t'évitera de te les faire pomper ^^
18 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Accents et caractéres spéciaux dans URL et referencement ?
- Dans les URL, évitez les accents, caractères spéciaux et majuscules
- Influence des accents: encodage natif ou caractères spéciaux
- URL-Rewriting et caractères spéciaux
- URL avec caractères spéciaux
- URL rewriting et caracteres speciaux dans l'URL
- Reformater 1 url:remplacer caractères spéciaux et espaces
- [dé]codage de caractères spéciaux dans les URL
- [URL Rewrite] Problème avec les caractères spéciaux.
- Caractères spéciaux: é ê è
- Analyse de popularité
Cet outil vous permet d'analyser en détails la "popularité" de votre site sur Google. En plus du nombre de liens pris en compte par Google, il calcule le pourcentage de liens internes parmi tous les liens, et il affiche les premières URL trouvées.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
