Tout savoir sur WordPress
Tutoriel WordPress

Empêcher les accents dans les URLs lors de l’upload d’un média

Cette astuce permet de supprimer les accents des adresses URLs des images uploadées à partir de l’administration de WordPress.

Il vous est certainement déjà arrivé d’uploader des images contenant des accents ou autres caractères spéciaux.

Par défaut, WordPress en remplace déjà quelques-uns, mais certains accents persistent et des problèmes de médias en erreur 404 apparaissent coté visiteur.

Pour palier ce problème, je vous propose 1 ligne de code à insérer dans un mu-plugin ou functions.php de votre thème :

[pastacode lang=”php” message=”” highlight=”” provider=”manual”]

add_filter('sanitize_file_name', 'remove_accents' );

[/pastacode]

Cet article a été mis à jour il y a 3879 jours - Il n'est peut être plus à jour !

Article écrit par Julio P.

Fondateur de SecuPress, l’extension de sécurité WordPress, Julio Potier est un Expert WordPress, un Formateur Expérimenté et un Consultant en Sécurité Web.

Il aime partager ses compétences et ses réflexions sur WordPress, donnant des conférences partout dans le monde.

34 Commentaires

  1. De le vieille école, je supprime systématiquement tout accent espace, et tous les trucs pas “*nix friendly” , mais sur un site client, voila un hack des plus utiles :)

  2. @tina : Parfois la solution est en 0 ligne de code tu sais ;) Il faut toujours chercher au plus simple possible.

    @li-an : Suffit de me demander, tu me connais maintenant :D

  3. Génial, merci pour l’astuce !
    Dans la même veine sans plugin, est il possible de remplacer les espaces blancs et autres caractères spéciaux par des tirets ?

  4. @Créalp : tu peux le faire avec un sanitize_key si tu veux être super restrictif. Sinon tu te fais ta règle de regex pour replace.

    @Flo : WP est anglais et donc pas d’accents, pourquoi remplace les accents dans les langues qui ne gèrent pas les accents !? C’est couteux pour rien, seuls ceux qui en ont besoin le font, c’est le but d’un hook ;)

  5. Yes merci pour la ligne qui m’enlève une bonne épine du pied, et surtout pas besoin d’un plugin supplémentaire ;)

    Je voudrais pouvoir remplacer les espaces entre les mots par un trait d’union comme dois je faire ?

  6. Je suis tombé par hasard sur votre article alors que je me demandais justement comment améliorer ça pour mon blog! Le hasard :)
    En effet, c’est en migrant mon blog sur un autre serveur que je me suis rendu compte de ce soucis. Sur mon premier serveur, les images avec accent avaient été publiées et utilisées comme cela. Mais en faisant le transfert, le nouveau serveur à converti les accents en caractères spéciaux. Du coup, les liens ne fonctionnaient plus.
    Si j’avais suivi vos conseils avant de faire tout ça, j’aurai gagné beaucoup de temps!

  7. Il existe plusieurs améliorations à intégrer au niveau code WordPress pour que tous les points (comme celui évoqué dans cet article) soient intégrés par défaut.

  8. Hello,

    Est-ce que cette fonction enlève également les cédilles et les caractères spéciaux comme @#& etc ?

  9. Merci pour l’astuce. Par contre j’aimerai savoir s’il est possible que le lien d’un article ou une page ne tienne pas compte des accents, pour qu’il concorde avec le titre. dans la configuration de wordpress seo, il peu arriver que l’url ne soit pas en concordance avec le mot-clé ou le titre. Par exemple avoir comme titre “Cinéma japonais” pour fausser le calcul de wordpress seo à cause de l’accent sur le “e”.

  10. Tout bête et diablement efficace! J’ai un plugin appelé “Optimislug” installé sur mon blog. Je pense que vous le connaissez. Il fait bien plus que les accents, mais je pense que je vais alléger mon blog et garder juste votre petite ligne, le reste je le ferais à la main.
    @Ermi: Je me pose exactement la même question. Parfois oui, le plugin SEO ne reconnais pas le même mot si il est écrit avec ous ans accent: faut-il y tenir compte ? Pareil pour les stop-words… Je suis toujours en quête du petit point vert! Votre site est super bien organisé, très clair, bravo. J’ai également fait un tour sur ton portfolio Jonathan, eh bien on peut dire que c’est vendeur, ça motive pour s’y mettre plus sérieusement (je suis encore qu’un gros novice).

  11. Bonjour,

    pas manque de connaissances, j’ai nommé mes images avec des accents, des espaces, des apostrophes,etc..
    comment faire pour tout changer sans reprendre chaque fichier par un par (presque 800 images).
    J’ai lu dans les commentaires sanitize_key , regex par replace, mais je ne sais pas utilisé ces codes, juste un exemple ou un lien qui explique,merci

  12. Salut,

    Ca semble ne pas fonctionner sur la V.4
    J’ai un problème d’accent avec les images, j’ai testé les deux solutions proposées, aucune des deux ne fonctionnent…

    Mais merci tout de même.