Comment publier du contenu en fonction du pays sous WordPress

Fait rare, je me suis remis à travailler sur  la configuration du blog de Quelbazar aujourd’hui. Au programme : Trouver une solution pour customiser certains contenus du blog en fonction du pays de provenance du visiteur. Plus précisément, je souhaitais inclure des publicités spécifiques au pays. Parce qu’il ne sert à rien de proposer des publicités suisses à un visiteur français, par exemple.

La méthode est assez simple, parce que d’autres y ont pensé avant nous : Il existe un plugin wordpress qui fait ça bien :  Custom Content By Country.

Ce plugin fonctionne au moyen de « shortcodes », donc je vous laisse aller voir la syntaxe dans la doc du plugin. Pour la simple et bonne raison que je ne sais pas insérer un shortcode dans l’article sans qu’il soit interprété…

Le plugin fonctionne sans autre dans les articles, mais mon but était de l’utiliser dans un widget. L’article Using shortcodes everywhere nous donne la solution : Dans le fichier functions.php (celui dans wp-includes), ajouter :

add_filter( 'widget_text', 'shortcode_unautop');
add_filter( 'widget_text', 'do_shortcode');
Je l’ai fait au début du fichier, à l’intérieur du code php. Les shortcodes sont ensuite interprétés dans les widgets, ce qui m’a permis de proposer de la pub suisse pour les suisses, et de la pub française pour les autres. là, à droite, la 2ème pub à partir du haut.

2 Commentaires

  1. …ou alors que notre proxy d’entreprise « dans le cloud » utilise une gateway dans un pays qui n’est « ni la Suisse, ni la France, ni la Belgique et ni les USA »…

    Je dis ça, je dis pas grand chose 😉 Intéressant la géolocalisation en tout cas!

    • D’abord, on ne surfe pas sur Quelbazar depuis sont entreprise, C’est mal. 🙂 Et si ton entreprise veut être apatride, qu’elle assume.
      Plaisanterie mise à part, la géolocalisation par IP, ça a en effet ses limites. Et je pense que ça va en avoir de plus en plus.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*