Blog Web & Design

Problème de backslash dans les articles WordPress ?

Cet article va, je l’espère, vous permettre de résoudre les problèmes de slash (/) indésirables ajoutés sur vos pages WordPress.

Recemment sur un projet de création de site WooCommerce, j’ai rencontré un problème : Lors de l’enregistrement de mes articles ( ou des fiches produits dans mon cas ), unz barre oblique inversée indésirable (ou backslash) venait s’ajouter lors de la mise à jour de l’article, après chaque apostrophe.

Pourquoi un backslash apparait ?

Si vous ne le savez pas, pour faire simple, en PHP l’apostrophe ou la guillemet est utilisée notamment pour encadrer des valeurs de variables, par exemple :
$prenom = 'Thomas';
or si on souhaite utiliser une apostrope, il est necessaire d’utiliser un backslash exemple :
$prenom = 'L\'enfant Thomas';
on peut aussi utiliser des guillemets :
$prenom = "L'enfant Thomas";

Une question d’apostrophe

en effet l’apostrophe que nous utilisons sur nos claviers, n’est pas l’apostrophe typgraphique qu’il faudrait utiliser.
Le problème est que l’apostrophe de notre clavier coupe la chaine de caractère PHP.
C’est d’ailleurs pour palier à ça, que WordPress ajoute automatiquement un \backslash ( Alt Gr + _ sur Windows ) dans la chaine de caractère au moment de l’enegistrement de l’article.

Solution 1 : utiliser des guillements

A la place d’utiliser l’apostrophe de votre clavier ( touche du chiffre 4 sur Windows ), il est donc possible d’utiliser manuellement le caractère unicode permettant de saisir un guillemet simple fermant (ou guillemet-apostrophe) même si on ne dispose pas du bouton sur son clavier :

Solution 2 : Remplacer « à la volée » avec PHP

Afin d’automatiser cela il est possible de retravailler le texte afin de remplacer la mauvaise apostrophe par la bonne

Pourquoi ne pas utiliser stripslash tout simplement ?

Sachez qu’il est tout à fait possible d’utiliser la fonction PHP Stripslash, mais attention il faut que l’option magic_quotes_gpc de votre PHP soit activée.

Dans mon test, j’ai eu à ajouter en plus un rtrim permettant de supprimer des caractères en fin de chaine, ce qui nous donne le code suivant

Retirer les backslashes dans un attribut post meta sur WooCommerce

Voici un exmple de code à utiliser pour les attribut personnalisé ( Nommé ici « ingrédients ») sur une page produit de WooCommerce ;

Ce code est à ajouter au fichier functions.php de votre thème WooCommerce ou bien dans un plugin personnalisé.


Sources : « Des textes plus élégants avec les apostrophes typographiques » – Bruno Bernard

Dernière mise à jour le Auteur : Thomas Dufranne

Repondre

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.