PROJET AUTOBLOG


NeoSting.net

source: NeoSting.net

⇐ retour index

Hook. Changer rel=category tag pour rendre son thème valide W3C #wordpress

mardi 18 juin 2013 à 12:01

Vous êtes passé au HTML5 (comme ce blog) même si les spécifications ne sont pas encore définitives, et vous avez raison. Pour ma part, j'ai bataillé un peu pour rendre la page d'accueil du blog valide W3C et j'ai pu corrigé quelques erreurs comme celle de WordPress, qui, lorsqu'on lui fait écrire une catégorie, via la fonction the_category(), rajoute nativement sur l'URL ceci :

rel="category tag"

Malheureusement, ceci empêche le validateur W3C html5 d'être content, et nous le fait savoir avec un joli message de ce type :

Bad value category for attribute rel on element a: Keyword category is not registered.

Il y a donc deux manières de régler le problème. Soit, en hackant un fichier natif de wordpress, soit en créant une petite fonction pour son thème. La première méthode serait sympa, sauf qu'à la prochaine mise à jour, il faudra recommencer. La création d'une fonction reste donc plus intéressante, mais elle sera temporaire, le temps que les développeurs de WordPress se penche sur la question, ou que la W3c accepte cette syntaxe.

Voici donc la fonction à copier et à ajouter dans son fichier functions.php de son thème, dans le répertoire wp-content/themes. Celle-ci va tout simplement remplacer "category tag" par "tag", qui est lui accepté par le W3C.

# validator w3c html5 for "category tag" // Enlève "category" dans la 4L
function remove_tag_in_catrel($text) {
    $w3c_tag = 'rel="tag"';
    $text = str_replace('rel="category tag"', $w3c_tag, $text); 
    return $text;
}
add_filter('the_category', 'remove_tag_in_catrel');

l'autre méthode qu'il faudra refaire à chaque mise à jour, c'est modifier le fichier wp-includes/category-template.php. À la ligne 163 (sur la plupart des versions de WordPress), on trouve ceci :

$rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"';

Remplacez donc logiquement "category tag" par "tag" et non juste par "category" qui n'est pas valide w3c pour le moment.


Hook. Changer rel=category tag pour rendre son thème valide W3C est une publication originale sur le blog NeoSting.net
Article sous licence Creative Commons CC-By

flattr this!