Résoudre l’erreur HTTP 406 Not Acceptable

Depuis que mon hébergeur a mis ses serveurs en cluster et exécute PHP en CGI et non comme module Apache, certaines fonctions de WordPress ne se comportent pas correctement, notamment les éditeurs de fichiers.

En effet, ces derniers semblent être devenus incapables de modifier les fichiers sans provoquer une erreur HTTP 406 :

HTTP Error 406 – Not acceptable
An appropriate representation of the requested resource /XYZ.php could not be found on this server.

Après quelques recherches, il semblerait que ce soit les filtres du mod_security d’Apache qui, trop restrictifs, empêchent les éditeurs… d’éditer !

La solution consiste donc à désactiver mod_security dans le répertoire où se trouvent les éditeurs (/wp-admin/ dans le cas de WordPress) :

  1. Créez un fichier .htaccess
  2. Editez le fichier avec ces instructions :
    
    SecFilterEngine Off
    SecFilterScanPOST Off
    
    
  3. Sauvegardez : vos éditeurs devraient maintenant fonctionner sans aucune erreur.

Notez que j’ai pris WordPress comme exemple mais cela résout les problèmes d’erreurs 406 quelle que soit l’application utilisée (blog, CMS…).

Mieux vaut créer le .htaccess dans le répertoire qui en a besoin : il est inutile voire déconseillé de désactiver mod_security sur l’ensemble d’un domaine pour des raisons évidentes de sécurité.

A utiliser là où il y a besoin donc.

Snowy : un plugin WordPress qui fait des flocons de neige

Snowy

Je viens d’écrire un nouveau petit plugin pour WordPress, baptisé Snowy, qui sera chargé d’afficher des flocons de neige sur le site à partir de décembre.

J’ai opté pour la solution sans images créée par Kurt Grigg : les flocons sont générés dynamiquement en DHTML.

L’essentiel du code est contenu dans un simple fichier javascript, le plugin injecte simplement ce code à la fin des pages HTML.

Simple et efficace, idéal pour donner un petit côté festif au blog sans pour autant gêner la lecture (ce qui est souvent le cas avec des images fixes).

Intéressé(e) ? Tout se passe sur la page de Snowy.

Snowy, let it snow on your WordPress

Snowy est un plugin pour WordPress qui permet de faire tomber quelques flocons de neige sur votre blog. Il ne requiert pas d’image, les flocons sont générés dynamiquement en DHTML.

Snowy is a WordPress plugin that makes some snowflakes fall all over you blog (ideal for the Christmas season !). It does not require any images, everything is dynamically generated via DHTML.

Dernière version / Latest version : 1.1

Install notes

  • Extract all files in /wp-content/plugins/snowy/
  • Activate the plugin

Changelog

  • v1.1 (15 Nov 2006) : fixed the script header.
  • v1.0 (12 Nov 2006) : initial release

Licence

The script is linkware. A link back here would be appreciated if you use the script.
And you can always show your appreciation by clicking the donate button ;-)

Sortie de WP-Date FR v1.2

bug-fix pansement

Sortie de WP-Date FR v1.2 aujourd’hui : pas de grands changements, j’ai juste rajouté l’encodage UTF-8 pour que les noms de mois accentués (comme août par exemple) s’affichent correctement.

La mise à jour aurait dû être faite il y a quelques jours mais cela m’est complètement sorti de la tête.

Cela est peu ou prou la version finale. Je cherche toujours à franciser la date des commentaires mais apparemment rien n’y fait, cela ne semble pas possible pour le moment.

Rendez-vous sur la page dédiée à WP-Date FR ou téléchargez WP-Date FR v1.2 directement.

WordPress: migration d'une base de données iso-8859-15 au format UTF-8 photo

WordPress: migration d’une base de données iso-8859-15 au format UTF-8

Modifications

Après avoir joué avec WordPress 2.0.4 pour le compte du Centre de Kriya Yoga France et questionné à ce sujet par creatix, je me suis mis en tête de mettre le blog à jour.

Mais quitte à mettre à jour, autant le faire proprement, c’est à dire de manière pérenne.

J’ai donc étudié les nouvelles fonctions apportées par WP2+ et j’ai pu me défaire d’au moins 5 ou 6 plugins dont les fonctions sont maintenant inclues par défaut dans WordPress.

Mais ce n’est pas tout : ma base de données WP 1.5+ était encodée en iso-8859-15 (caractères de l’Europe de l’Ouest, avec le symbole Euro), ce qui était bien en 2004 mais qui ne l’est plus en 2006. Hé oui, les temps changent et les encodages de caractères avec eux !

Place donc à l’UTF-8, un codage qui se veut universel (il permet de représenter des milliers de caractères de toutes sortes de langues, dont l’ensemble des caractères spécifiques français), compatible (un texte en US-ASCII est codé identiquement en UTF-8) et visant l’interopérabilité (chaque caractère est codé sur une suite de un à quatre octets.

UTF-8 a été conçu pour être compatible avec certains logiciels originellement prévus pour traiter des caractères d’un seul octet).

Lire la suite

Récupérer l’ID d’un post ou d’une page sous WordPress

Vous utilisez peut-être WordPress pour publier votre blog.

Vous avez commencé à modifier un thème pour l’adapter à vos besoins/goûts/envies mais une variable vous résiste : la variable qui permet d’afficher un post grâce à un numéro unique l’identifiant (ID).

Par défaut, cet identifiant est disponible uniquement à l’intérieur de la boucle (The Loop) de WordPress :

/* on affiche le numéro de post/page dans la boucle WordPress */
the_ID();Code language: JavaScript (javascript)

Tant que vous vous trouvez dans la boucle, aucun souci.

Par contre, si vous souhaitez écrire votre propre plugin ou utiliser cette variable dans votre sidebar, vous êtes un peu coincé car the_ID() n’est alors plus une fonction valide.

Pour remédier à ce problème, vous pouvez utiliser la variable $post->ID afin de retourner le numéro du post ou de la page.

Jettez un oeil au code suivant :

/* on fait de $post une variable globale */
global $post;

/* on stocke la variable dans un nom de variable inutilisé */
$sky_post_ID = $post->ID;

/* on affiche cette variable */
echo $sky_post_ID;Code language: PHP (php)

Alternative, en effectuant une requête SQL simplifiée par $wp_query.

Cette méthode est utilisée principalement hors de la boucle, en travaillant directement sur la base de données :

/* on fait de $wp_query une variable globale */
global $wp_query;

/* on stocke la variable dans un nom de variable inutilisé */
$sky_post_ID = $wp_query->post->ID;

/* on echo cette variable */
echo $sky_post_ID;Code language: PHP (php)

Voilà, vous devriez maintenant pouvoir accéder à ces fameux post id et page id.

Happy coding :)

Sélection de plugins anti-spam pour WordPress

Tiens, c’est bizarre, je commence à avoir du spam sur mon compte Gmail : je n’en avais jamais eu jusqu’à présent et j’ai bien dû en recevoir une dizaine aujourd’hui. Même s’il est immédiatement capté par les filtres et redirigé dans le dossier spam, on perd toujours du temps à vérifier que des messages légitimes ne sont pas passés à la trappe. Une vraie perte de temps.

Heureusement, je n’ai (quasiment) plus ce problème sur le blog : après des dizaines d’essais, je pense à être arrivé à la solution la plus intéressante en terme de défenses antispam.

J’ai abandonné la solution en .htaccess qui bloquait certains utilisateurs pour utiliser les plugins suivants qui fonctionnent parfaitement :

  • Better Comments ventile à vue les commentaires postés avec des noms d’utilisateurs composés uniquement de chiffres et permet d’éviter qu’un inconnu ne se fasse passer pour un utilisateur enregistré sur le site.
  • SpamJam est le must du must: il trompe littéralement tous les bots avec sa panoplie de mesures antispam, qui ont le mérite de fonctionner mais surtout d’être complètement invisibles pour les gens normaux.

Analysons un peu la situation : en activant seulement Akismet, le blog captait entre 100 et 200 spams par jour. En activant SpamJam, c’est environ un spam tous les trois mois !

Ce sont pour moi les 2 plugins les plus efficaces. J’ai essayé Bad Behavior pendant quelques temps mais cela ne m’a pas convaincu, doublant la taille de la base de donnée en quelques jours !

Akismet devient payant dès que vous tentez de monétiser votre site donc ce n’est pas une solution viable non plus (mais je peux comprendre, ce ne peut être un service gratuit vu le nombre dantesque de spams traités tous les jours).

Je considère donc ma quête comme momentanément aboutie – être virtuellement spam-free, c’est très agréable !

Song Displayer Live : a webradio feed checker

Webradio feed checker WP plugin

Qui dit nouvelle radio dit nouvelles fonctionnalités, nouveautés et tutti quanti.

Maintenant que Thunderstruck Radio tourne avec SAM Broadcaster un peu plus souvent qu’avec la mouture précédente (qui utilisait Winamp), j’ai dû quelque peu adapter Song Displayer afin que l’affichage des informations du flux soit actualisé en permanence, présentant ainsi le nom de la chanson et de l’artiste au moment même où ils jouent sur la radio.

Song Displayer, à l’origine, fonctionnait de la manière suivante : formatage des données dans un fichier texte, upload de ce fichier sur le serveur, extraction et présentation des données sur le site.

Les infos étaient affichées si la dernière modification du fichier texte était inférieure à 7 minutes. Passé ce délai, la radio était considérée comme offline.

Or, si la webradio tourne quasiment en permanence, on arrive vite à quelques problèmes de bande passante : ce système n’est plus adapté et mieux vaut détecter si le flux est actif au lieu de recourir à la lecture d’un fichier.

J’ai donc retouché Song Displayer pour qu’il regarde dans le répertoire pages jaunes Icecast si le flux s’y trouve. Le script recherche donc le flux et en extrait les infos. Simple et efficace. ^_^

Je n’ai pas sorti publiquement cette version du plugin parce qu’il me semble que peu de gens possèdent une webradio tout en utilisant Song Displayer. Mais peut-être me trompe-je ! Si c’est le cas, dîtes-le moi.

Song Displayer : a WordPress plugin to display on your blog what Winamp or SAM Broadcaster is playing photo

Song Displayer : a WordPress plugin to display on your blog what Winamp or SAM Broadcaster is playing

Song Displayer is a WordPress plugin that displays what is playing in Winamp or SAM Broadcaster on your blog.

How it works

The plugin consists of 4 files.

mp3-in.php is a template for Winamp, used to generate the playlist.

mp3-in-sam.php is a template for SAM Broadcaster, used to generate the playlist.

mp3-out.php is the generated playlist with ID3-tags. This file will be uploaded on your server every time a song plays.

song_displayer.php is the WordPress plugin to be placed into your /wp-contents/plugins/ directory.

Lire la suite

WP-Date FR : un plugin pour afficher la date en français sous WordPress

Je viens de mettre au point un petit plugin pour WordPress afin de permettre l’affichage de la date en français, avec le nom des jours et des mois en français, au lieu des noms anglais imposés.

Cela faisait déjà quelque temps que cela me trottait dans la tête alors pour fêter le lancement du thème Bleuet, je me suis dit qu’il serait de bon ton d’avoir quelque chose d’uni.

Et cela passe forcément par la date à la mode de chez nous.

Le problème

Lorsque vous créez ou utilisez un thème WordPress, celui-ci contient une des ces deux fonctions : the_time() ou the_date(), qui peuvent l’une comme l’autre servir à afficher les la date et l’heure à laquelle sont postés vos billets.

Or, par défaut, les valeurs renvoyées sont en anglais, définies par les variables de la fonction date() en PHP.

Lire la suite

WP-Date FR

WP-Date FR est un plugin pour WordPress qui permet l’affichage de la date en français, avec le nom des jours et des mois en français. Cela permet de franciser un peu les dates eu lieu d’afficher le format anglo-saxon.

WP-Date FR is a WordPress 1.5.x/2.x plugin designed to display the date and time information of your blog entries using the French date format (DD MM YYYY) instead of the default format. Think of it as a date localizer.

Dernière version / Latest version : 1.2

Install notes

  1. Activate plugin in the plugin admin section
  2. WordPress is now using the French date !

Changelog

  • v1.2 : added support for UTF-8.
  • v1.0.1 : added filters for both the_time() and the_date() so as to cater for the maximum number of themes. Simply activate the plugin and off you go !
  • v1.0 : initial release.

Licence

The script is linkware. A link back here would be appreciated if you use the script.
And you can still show your appreciation by clicking the donate button ;-)

WordPress plugin : Song Displayer

Song Displayer est un plugin pour WordPress qui vous permet d’afficher ce que joue Winamp ou SAM Broadcaster sur votre blog en se servant des tags ID3v1 (si disponibles) ou du nom du fichier tel qu’il apparaît dans la playlist dans le cas contraire.

Vous avez aussi la possibilité de faire un lien de ces informations vers votre radio Shoutcast ou IceCast afin de faire partager ce que vous écoutez avec vos visiteurs.

Si Winamp/SAM Broadcaster ne joue pas, le message par défaut s’affiche (“Radio is off”).

Song Displayer is a WordPress 1.x/2.x plugin that lets you display on your blog the song information extracted from your Winamp or SAM Broadcaster playlist using the ID3v1 tags.

It requires the DoSomething plugin for Winamp. You can link up this information to your Shoutcast or IceCast radio so as to share what you are listening to with your readers.

If nothing is playing, a default message is output (“Radio is off”).

Dernière version / Last version : 0.4

Installation

Changelog

v0.4 – added support for SAM Broadcaster.
v0.3 – bug fix version. Now supports WP 1.5+ and up.
v0.2 – initial release

Licence

The script is linkware. Talk about it on your blog/site or hit the donate button :)