22.06.2011

WordPress und HTML5 Validierung

Wer in letzter Zeit seine WordPress Seite mit ursprünglich Super validem HTML5 Template geprüft hat, wird festgestellt haben, das das Template nicht mehr validiert. Die Ursache liegt darin begründet das HTML5 noch kein fertiger Standard ist, und sich dadurch auch des öfteren mal Änderungen ergeben, die von dem W3C Validator aufgenommen werden. Jetzt stellt sich natürlich die Frage: Was muss ich tun um mein Template wieder Valide zu machen. Die meisten Änderungen lassen sich durch eine einfache Anpassung an den Themedateien beheben.Allerdings gibt es eine aktuelle Änderung die etwas Tricky ist: Die Beschränkung „rel“ Attributes bei <a> und <link> auf eine Handvoll Arribute. Hierdurch werden einige <link> Tags im <head> Bereich ungültig. Auch die von der get_the_category_list() Funktion zurückgegebene Kategorieliste validiert aus dem selben Grund nicht. Diese beiden Probleme lassen sich beheben indem man die beiden folgenden Funktionen in die functions.php des Themes kopiert:

// remove invalid links in the <head>
function remove_head_links() {
     remove_action( 'wp_head', 'start_post_rel_link' );
     remove_action( 'wp_head', 'index_rel_link' );
     remove_action( 'wp_head', 'rsd_link' );
     remove_action( 'wp_head', 'wlwmanifest_link' );
}
add_action('init', 'remove_head_links');

// remove invalid rel attribute values in the categorylist
function remove_category_rel_from_category_list($thelist){
     return str_replace('rel="category tag"', 'rel="tag"', $thelist);
}
add_filter('the_category', 'remove_category_rel_from_category_list');