Caractères accentués dans les noms de catégorie (Créer un compte)

  • Statut : non résolu
6 sujets de 1 à 6 (sur un total de 6)
  • Auteur
    Messages
  • #476892
    gabier
    Participant
    Chevalier WordPress
    110 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.8.4
    – Thème utilisé : perso
    – Extensions en place : cforms
    – Nom de l’hebergeur : OVH
    – Adresse du site : http://www.chomage-et-monnaie.org/wordpress

    Problème(s) rencontré(s) :

    Bonjour,
    J’ai fait une recherche sur mon sujet, le problème est qu’il y a tellement de posts sur les caractères accentués que je n’arrive pas à les éplucher tous pour trouver mon cas. Donc je m’excuse de poser cette question , en somme par paresse 😳

    Je voudrais avoir des noms de catégories avec des caractères accentués. Par exemple j’ai une catégorie « Actualité » je la veux « Actualité » et non « Actualite ». J’ai résolu le problème en codant partout le é en é (non seulement dans le nom de catégorie déclaré dans l’admin du blog, mais aussi dans tous les appels de fonction avec un paramètre impliquant le nom de catégorie, par exemple get_cat_id($nom_cat)).
    Tout marchait nickel, jusqu’au moment, aujourd’hui où j’ai voulu configurer mes flux RSS.
    Là aussi je veux un flux RSS dédié aux « Brèves d’Actualité ».
    Donc je code bravement

    <?php $path=get_bloginfo('siteurl');$path="$path/";?>



    <a href="
    <?php $cat=get_cat_id('Actualité');
    echo $path."?feed=rss2&cat=$cat";
    ?>
    « >Brèves d’actualité</a>

    Et patatras 😮
    L’appel au flux RSS fonctionne, mais celui-ci refuse de s’afficher (IE7 et Firefox) à cause du é qui se retrouve dans le du fichier xml fabriqué par WordPress.</p> <p>Message d’erreur :</p> <div class="code-embed-wrapper"> <pre class="language-php code-embed-pre line-numbers" data-start="1" data-line-offset="0"><code class="language-php code-embed-code">« Erreur d’analyse XML : entité non définie<br />Emplacement : http://www.chomage-et-monnaie.org/wordpress/?feed=rss2&cat=51<br />Numéro de ligne 12, Colonne 43 : <title>Chômage et Monnaie » Actualité</title></code></pre> <div class="code-embed-infos"> </div> </p></div> <p>Extrait du source de la page Firefox :</p> <div class="code-embed-wrapper"> <pre class="language-php code-embed-pre line-numbers" data-start="1" data-line-offset="0"><code class="language-php code-embed-code"><?xml version="1.0" encoding="UTF-8"?><br /><rss version="2.0"<br /> xmlns:content="http://purl.org/rss/1.0/modules/content/"<br /> xmlns:wfw="http://wellformedweb.org/CommentAPI/"<br /> xmlns:dc="http://purl.org/dc/elements/1.1/"<br /> xmlns:atom="http://www.w3.org/2005/Atom"<br /> xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"<br /> xmlns:slash="http://purl.org/rss/1.0/modules/slash/"<br /> ><br /><br /><channel><br /> <title>Chômage et Monnaie » Actualité</title></code></pre> <div class="code-embed-infos"> </div> </p></div> <p>Alors là, je ne sais plus quoi faire. Il est vrai que je n’ai jamais vraiment compris les problèmes de systèmes de codages des caractères…</p> <p>🙂 Gabier

    #704515
    petit nuage
    Membre
    Maître WordPress
    546 contributions

    Il est vivement recommandé de ne pas utiliser de caractères accentués dans les identifiants de catégories. Cela est indépendant du nom de la catégorie qui ne sert qu’à l’affichage et peut comporter des accents, de préférence encodés sous forme d’entités HTML (donc ici le « é » encodé « é »).

    #704516
    gabier
    Participant
    Chevalier WordPress
    110 contributions

    Bonsoir,
    Je suis d’accord, d’ailleurs ma catégorie de nom « Actualité » a pour identifiant « actualite », sans accent.
    Mais ça ne résoud pas le problème. Car mon code renvoie bien à l’url
    http://monsite/?feed=rss2&cat=51
    La catégorie est envoyée à WordPress par son ID et non par son nom. C’est WordPress lui-même qui va chercher le NOM de la catégorie et qui envoie un é dans le fichier XML du flux RSS.
    Ce qui paraît normal puisque ce titre va s’afficher en tête du flux RSS.
    Alors, pourquoi ça coince ?

    🙂 Gabier

    #704517
    gabier
    Participant
    Chevalier WordPress
    110 contributions

    Bon, j’ai fait des essais et je suis arrivé à une solution, mais j’explique sur mon exemple car ça peut servir à tout le monde. Je suis en UTF-8 aussi bien dans WordPress que dans la Base de Données.

    J’ai une catégorie « Actualité » d’identifiant « actu ».
    Mon problème est de récupérer le numéro de catégorie un peu partout dans le thème, et en plus, d’avoir un flux RSS qui marche sur cette catégorie et seulement elle.

    1er cas : A la déclaration du nom de catégorie, je saisis « Actualité »
    get_cat_ID(‘Actualité’) renvoie bien le N° (disons nn)
    Mais l’appel à http://monsite/?feed=rss2&cat=nn se plante à cause du &

    2ème cas : A la déclaration je saisis « Actualité »
    get_cat_ID(‘Actualité’) renvoie 0 (échec)
    get_cat_ID(‘Actualite’) on remplace le « é » par un « e » et ça renvoie bien nn. Mais je n’ai vu ça nulle part dans les spécifs de get_cat_id() et ça ressemble plus à une tolérance qu’à autre chose.
    On a aussi get_category_by_slug(‘actu’) qui renvoie l’objet « Actualité » avec nn dans sa propriété $term_id
    Alors l’appel à http://monsite/?feed=rss2&cat=nn fonctionne correctement.

    Bien que ça fasse un peu recette de cuisine, c’est clair ?

    🙂 Gabier

    PS Je voudrais mettre « [RESOLU] » dans le titre mais je ne sais pas comment on fait.

    #704518
    riri1310
    Membre
    Initié WordPress
    15 contributions

    Je crois qu’il suffit de cliquer sur éditer le message et de modifier le titre 😉

    #704519
    gabier
    Participant
    Chevalier WordPress
    110 contributions

    Ben non, ou alors je suis bigleux, mais quand je clique sur « Editer », j’obtiens une page où je peux modifier le texte, mais je ne vois le titre nulle part.

    Peut-être sulement les modos le font ?

    🙂 Gabier

6 sujets de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.