- Statut : non résolu
- Ce sujet contient 8 réponses, 3 participants et a été mis à jour pour la dernière fois par xavier, le il y a 18 années et 10 mois.
-
AuteurMessages
-
12 novembre 2005 à 13 h 35 min #446628
Bonjour,
j’avais signalé deux troubles à un blog tournant sur WP :
– des caractères non SGML dans les posts,
ce qui rend les pages non valides XHTML.
– des caractères réservés XML non échappés dans les fils RSS
ce qui empéche de les lire.pour voir, j’ai reproduit les bugs dans un WP fraichement installé :
pour les caractères non SGML on peut voir ici :
http://clansco.info/blog/
un email de ben avec des ?uvreset pour le xml :
http://clansco.info/blog/?feed=rss2&p=5
(tester sur firefox, fil_LE bloque aussi)c’est du natif WP, comme je viens à peine
de découvrir WP, je me permets de poster ici pour avoir des
avis avant de poster en anglais dans la section bugs présumés,
je suis nul en anglais.merci par avance,
amicalement,
ff13 novembre 2005 à 12 h 21 min #567161WP est utf-8 par défaut, apparemment tes caractères ont été entrés en iso-8859-1, d’où problème.
Je ne sais pas comment tu t’y es pris, tes titres ont l’air en iso et tes textes en utf… Un réglage à changer kekpart ?13 novembre 2005 à 15 h 47 min #567162il suffit de copier-coller.
et le problème c’est que quand il y a des dizaines d’utilisateurs, il est impossible de faire comprendre à tous qu’il ne faut pas faire ceci ou cela. donc obligation de filtrer.
j’ai vu un post sur le forum wp english, où on semble prendre ce pb à la légère …
j’ai essayé de souligner l’importance, mais vu mon niveau d’anglais … 😮
http://wordpress.org/support/topic/4924717 novembre 2005 à 13 h 21 min #567163pour la question des caractères réservés dans un fichier XML (ici les fils RSS) :
j’ai trouvé ça dans wp-includes/default-filters.php , lignes 74 à 76 :
add_filter(‘the_title_rss’, ‘strip_tags’);
add_filter(‘the_title_rss’, ‘ent2ncr’, 8);
add_filter(‘the_content_rss’, ‘ent2ncr’, 8);le troisième paramêtre est priority
add_filter(‘hook_name’, ‘your_filter’, [priority], [accepted_args]);
http://codex.wordpress.org/Plugin_API#Filterson trouve le filtre ent2ncr dans wp-includes/functions-formatting.php
à la ligne 726, et elle remplace
‘&’ => ‘&’,à priori tout semble clean, juste à vérifier les priorités.
mais là je vois plus ennuyeux :
dans le code source de http://clansco.info/blog/ on lit :
<div class="post">
<h2 id="post-5"><a href="http://clansco.info/blog/?p=5" rel="bookmark" title="Lien permanent pour test &">test &</a></h2>
<small>12 novembre 2005 <!-- par Administrator --></small>
<div class="entry">
<p>test & <> ? ?
</p>
</div>
<p class="postmetadata">Publié dans <a href="http://clansco.info/blog/?cat=1" title="Voir tous les articles dans Uncategorized" rel="category tag">Uncategorized</a> <strong>|</strong> <a href="http://clansco.info/blog/wp-admin/post.php?action=edit&post=5">Modifier</a> <strong>|</strong> <a href="http://clansco.info/blog/?p=5#comments">Aucun commentaire »</a></p>
<!–
–>
</div>et dans le code source de http://clansco.info/blog/?feed=rss2&p=5 onlit :
<!-- generator="wordpress/1.5.2" -->
<title>Comments on: test &</title>
http://clansco.info/blog/?p=5
le blog de ClanscoTribues
Thu, 17 Nov 2005 12:43:55 +0000
http://wordpress.org/?v=1.5.2donc on voit que dans la page, il y a un commentaire dc:title= »test & »
et qu’il semble que dc:title ne soit pas échappé et utilisé pour fabriquer
le titre du fil rss …bref, ça viendrait de là ??
encore une fois, je découvre wp et je ne suis pas certain de ce que je dis …amicalement,
ff20 novembre 2005 à 9 h 09 min #567164je pense avoir situé l’erreur pour le & non échappé dans les titres :
dans wp-includes/functions-formatting.php à partir de la ligne 99
function wp_specialchars( $text, $quotes = 0 ) {
// Like htmlspecialchars except don’t double-encode HTML entities
$text = preg_replace(‘/&([^#])(?![a-z12]{1,8}😉/’, ‘&$1’, $text);ça ne remplace pas le & tout seul
en rajoutant juste après la ligne :
$text = str_replace(‘&’, ‘&’, $text);ça résoud mon problème, voir :
http://clansco.info/blog/ et http://clansco.info/blog/?feed=rss2seulement, n’aurais-je pas introduit un nouveau problème ???
à suivre
20 novembre 2005 à 9 h 39 min #567165la solution élégante me semble être de créer une nouvelle fonction :
dans default-filers on ajouterait :
add_filter(‘the_title_rss’, ‘escape_amp’);
et dans function-formatting on ajouterait :
function escape_amp( $text) {
$text = str_replace(‘&’, ‘&’, $text);
}21 novembre 2005 à 10 h 23 min #567166As-tu vérifié si le bug est référencé dans la roadmap de développement de WordPress ?
21 novembre 2005 à 17 h 57 min #567167j’ai vérifié qu’il n’était pas dans le tracker,
il y a bien le Ticket #1451 :
If there are special characters in the Blog’s title, they are not correctly escaped in the RSS feeds.
la priorité est basse car ce n’est signalé que pour le titre du blog,
Priority: low Severity: minor
le problème est génant car ceci est aussi valable pour les titres des posts,
et il semble que les musiciens adorent les titres genre John&michelle21 novembre 2005 à 18 h 39 min #567168Aaaah, Crosby, Stills & Nash… 😉
& Young ! -
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.