WordPress, W3C, href avec target= »_blank »

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.