Désactiver les smiley dans un article ou dans une page
25 février 2007 par Marc Charlet
Lorsque je veux publier le code source de fichiers, j'utilise la version 3.5 du plugin iG:Syntax Hiliter. Tout serait pour le mieux dans le meilleur de monde si les sources à visualiser ne contiennent pas de code correspondant à un code de smiley. Comme dans mon cas, j'utilise le plugin More Smilies configuré pour utiliser le jeu de smilies Kopete, les surprises sont nombreuses:
- les :db se transforment en :db,
- les :primary en :primary
et ainsi de suite...

Facile me direz-vous: il suffit de remplacer le caractère : par son équivalent en entité ascii : ... voici ce que ça donne:

Il faudrait pouvoir désactiver temporairement les smilies pour l'article courant. Malheureusement activer ou désactiver les smilies est une option globale et couvre l'entièreté du blog.
Après une recherche sur le net, j'ai trouvé un article sur pure-essence.net qui donne le moyen d'y parvenir.
la méthode est simple et est basée sur
- l'utilisation d'un champ personnalisé disable_smiley à mettre à true

- la modification la fonction convert_smilies du fichier /wp-includes/functions-formatting.php pour tester la présence du champ personnalisé:
-
function convert_smilies($text) {
-
$output = '';
-
if (get_settings('use_smilies')) {
-
function convert_smilies($text) {
-
$output = '';
-
$smileykey = get_post_meta($post->ID, "disable_smiley", TRUE);
-
if (get_settings('use_smilies') && $smileykey != 'true') {
voici le résultat:

c'est bien ce qui était recherché!
(i)ATTENTION(i)
Avec la dernière version du plugin more-smilies (2.1), c'est le code du plugin qui affiche les smilies et c'est le fichier /plugin/more-smilies/more-smilies.php qu'il faut modifier!
-
/**
-
* convert_smilies from WP core
-
* Needs improvement
-
*/
-
function convert_smilies($text) {
-
$output = '';
-
if ($this->use_smilies) {
-
# capture all plus tags
qu'il faut modifier en:
-
/**
-
* convert_smilies from WP core
-
* Needs improvement
-
*/
-
function convert_smilies($text) {
-
global $post;
-
$output = '';
-
$smileykey = get_post_meta($post->ID, "disable_smiley", TRUE);
-
if (($this->use_smilies) && $smileykey != 'true'){
-
# capture all plus tags
Tags: plugin, syntax-hiliter, truc, utilitaire, Wordpress
