WordPress

WordPress-Theme: Kopf aufräumen und den W3C Validator glücklich machen

Bei vielen WordPress-Themes liefert der W3C Validator Warnmeldungen. Und zwar betreffend zweier Dinge im Kopfteil:

 

Zum einen gibt es diesen Error:

Error: Bad value https://api.w.org/ for attribute rel on element link: The string https://api.w.org/ is not a registered keyword.

From line 30, column 1; to line 30, column 88

</script>↩<link rel='https://api.w.org/' href='https://DOMAIN/wp-json/' />↩<meta

Hier geht es darum, daß im Attribut rel ein nicht vorgesehener Inhalt angegeben ist.

 

Zum anderen geht es um Warnungen wie diese:

Warning: The type attribute is unnecessary for JavaScript resources.

From line 22, column 1; to line 22, column 119

='all' />↩<script type='text/javascript' src='https://DOMAIN/wp-includes/js/jquery/jquery.js?ver=1.12.4'></scri

Hier wird zu recht bemeckert, dass das Attribut type=“text/javascript“ unnötig ist.

 

Folgendes hab ich daher in das relevante Theme eingebaut:

function my_remove_unwanted_head_actions() {
    remove_action( 'wp_head', 'post_comments_feed_link ', 2 ); 
        // Display the links to the general feeds: Post and Comment Feed
    remove_action( 'wp_head', 'rsd_link' ); 
        // Display the link to the Really Simple Discovery service endpoint, EditURI link
    remove_action( 'wp_head', 'wlwmanifest_link' ); 
        // Display the link to the Windows Live Writer manifest file.
    remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); 
        // remove prev link
    remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); 
        // remove Display relational links for the posts adjacent to the current post.
    remove_action( 'wp_head',      'rest_output_link_wp_head'              );
        // remove Link header for the REST API.
    remove_action( 'wp_head',      'wp_oembed_add_discovery_links'         ); 
        // remove oEmbed discovery links in the website 
    remove_action( 'template_redirect', 'rest_output_link_header', 11 );
        // remove the REST API link tag into page header.
}
add_action('wp_head', 'my_remove_unwanted_head_actions', 0);

Es tut dabei noch mehr als nur den oben gemeldeten Fehler zu beheben. Hier werden alle Angaben aus dem <head> entfernt, die meiner Meinung nach inzwischen obsolet oder unnötig sind.

Für die Warnung über den unnötigen type hab ich den folgenden Filter ergänzt:

function my_remove_type_attr($tag, $handle) {
    return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
}
add_filter('style_loader_tag', 'my_remove_type_attr', 10, 2);
add_filter('script_loader_tag', 'my_remove_type_attr', 10, 2);

Das ist zwar nicht ganz perfekt und wird nicht all die Fälle abfangen, w0 Script- und CSS-Includes aus Plugins kommen, aber es hilft zumindest dazu, die Ausgaben des Themes sauber zu machen.

 

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen