[WP] Thème par défaut pour IE
Ayant quelques jours de repos, je profite pour fignoler le thème du blog, qui est, il faut l’avouer devenu vraiment hmm.. confus!
Et en naviguant sur le web pour améliorer le support très poussif d’Internet Explorer (même 8.0), je suis tombé sur un petit bout de code, permettant au serveur d’envoyer automatiquement le site avec le thème par défaut WordPress, plutôt que le votre. Quelques explications.
Le code
D’abord, il faut détecter le “User Agent” du visiteur. C’est en fait le code d’identification du navigateur, de l’OS, et de plein d’autres choses.
1 | if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false) { // faire quelque chose } |
Avec ce bout de code, on ordonne au serveur de faire “quelque chose” si le navigateur du visiteur est MS Internet Explorer 6. Moi j’ai modifié un bout du code original pour reconnaître toutes les versions d’internet explorer, car même la 8 est très moyenne niveau CSS (3), même si, je dois l’avouer, les performances Javascript sont étonnamment ..euh.. stellaires par rapport à Firefox/Chrome. On arrive donc à ça:
1 | if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { // faire quelque chose } |
Il faut ensuite dire à WordPress d’utiliser le thème par défaut. Et mettre le tout dans un plugin, car changer de thème n’est par définition pas possible dans les fichiers d’un thème (c’est absurde!)
Le plugin
Tout entier, le code ressemblera à ça. Copiez-collez le tout dans un fichier, par exemple, iethemefix.php, dans le répertoire /wp-content/plugins de votre blog.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php /* Plugin Name: Theme par defaut pour IE Plugin URI: http://www.nathanrice.net/blog/serve-ie6-visitors-the-default-wordpress-theme Description: Ce plug-in servira le theme par defaut si le visiteur navigue avec Internet Explorer Author: Nathan Rice, modifie par Ahmed Bougacha Author URI: http://www.nathanrice.net/ Version: 1.1 */ add_filter('template', 'serve_default_to_iesix'); add_filter('option_template', 'serve_default_to_iesix'); add_filter('option_stylesheet', 'serve_default_to_iesix'); function serve_default_to_iesix($theme) { if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false) $theme = 'default'; return $theme; } ?> |
Merci à Nathan Rice!
[via Nathanrice]

