WordPress, W3C, href avec target= »_blank »
10 février 2010
Il n’est pas simple d’obtenir la validation W3C, surtout si vos pages utilisent XHTML Strict 1.0, une méthode simple pour y remédier.
En premier consultez cet article : WordPress, W3C, target= »_blank », disponible sur le site Développeur Web
Une autre méthode, moins radicale mais aussi très simple à mettre en oeuvre:
1. Créez le fichier « href.js » et insérez le code suivant:
jQuery(document).ready(function($) {
// balise "a" click
$("a").click(
function(){
// l'attribut class à pour valeur external, il s'agit d'un lien externe
if(($(this).attr("class"))=='external') {
// on ouvre le lien dans une nouvelle fenêtre ou onglet selon le navigateur
window.open(this.href);
return false;
}
return true;
}
);
});
2. Insérez le code suivant dans le head de votre thème
// ajout de notre fichier js dans la liste des fichiers à insérer.
wp_enqueue_script('href', get_bloginfo('template_url') . '/href.js', array(), '1.0.0', false);
// cette ligne doit impérativement être placée après tous vos appels de js.
wp_head();
Lorsque vous ajoutez un lien via TinyMCE, passez en mode HTML pour remplacer l’attribute target par une class css, exemple:
<!--/* lien avant modification: */--> <a href="http://www.developpeur-web-le-vrai.com" target="_blank">Développeur Web</a> <!--/* passer en mode HTML et remplacer l'attribut target par class: */--> <a href="http://www.developpeur-web-le-vrai.com" class="external">Développeur Web</a>
Publier votre page et le tour est joué.
Il vous faudra également vous assurer que tous vos liens n’utilisent plus target= »_blank » mais class= »external » pour tous vos liens externes, tels que ceux définis dans votre thème, si vous utilisez les fonction telles : wp_list_bookmarks, il vous modifier sont comportement, exemple:
// on remplace les target="_blank" par notre class="external"
$bookmarks = str_replace("target=\"_blank\"", "class=\"external\"", wp_list_bookmarks());
echo $bookmarks;
En conclusion:
Rendre un site Web compatible W3C n’est pas chose simple (et puisque les normes et internet évolues chaque jour), mais en passant un peu de temps cela est possible.