WordPress bringt seit Version 2.5 stetig neue Standard Funktionen in den head des Themes ein, immer über den Hook wp_head
. Auch mit WordPress 2.8 wurden neue Funktion ergänzt, die vorrangig den Link-Tag bedienen. Nicht immer ist das aber gewollt und daher können die Funktionen auch deaktiviert werden, schlicht und einfach mit Hilfe der Funktion remove_action
.
Funktion remove_action
remove_action( $tag, $function_to_add, $priority, $accepted_args );
This function removes a function attached to a specified action hook. This method can be used to remove default functions attached to a specific action hook and possibly replace them with a substitute.
Important: To remove a hook, the
$function_to_remove
and$priority
arguments must match when the hook was added. This goes for both filters and actions. No warning will be given on removal failure.
via: WP Codex
Die folgenden Syntax zeigt einen Auszug, der nur einen Teil der Ausgabe zeigt, die man im Theme aktiv haben kann. Sie resultieren aus den Standard Funktion, die in den head des Themes geladen werden. Erkennbar, in dem man in der Datei wp-includes/default-filters.php
nach dem Hook wp_head
sucht. Nicht alle Filter sollte man deaktivieren, da sie in den meisten Fällen sinnvoll sind. Aber WordPress ist nicht nur in klassischen Blogscenarios im Einsatz und daher bietet es sich, wenn man zumindest die Lösung kennt. Diese ist dann im zweiten Syntax-Feld zu erkennnen.
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://bueltge.de/xmlrpc.php?rsd" />
<link rel='index' title='bueltge.de [by:ltge.de]' href='https://bueltge.de' />
<link rel='start' title='WP - Datenbank sichern' href='https://bueltge.de/datenbank-sichern/9/' />
<link rel='prev' title='WordPress Konstanten nutzen' href='https://bueltge.de/wordpress-konstanten-nutzen/962/' />
Hier werden nun diverse Funktion deaktiviert, beispielhaft und nicht als Empfehlung. Untersucht euren Head und schaltet ab, was ihr nicht benötigt. Weniger Markup freut nicht nur die Ladezeit.
remove_action( 'wp_head', 'feed_links_extra', 3 ); // Display the links to the extra feeds such as category feeds
remove_action( 'wp_head', 'feed_links', 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', 'index_rel_link'); // index link
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); // prev link
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); // start link
remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // Display relational links for the posts adjacent to the current post.
remove_action( 'wp_head', 'wp_generator' ); // Display the XHTML generator that is generated on the wp_head hook, WP version
Als Hinweis, wer noch nicht mit eigenen Funktionen im Theme gearbeitet hat: Zugriffe auf Hooks werden durch die Pluginschnittstelle realisiert oder in der functions.php
des Themes abgelegt. Sollte es die Datei nicht geben, dann einfach anlegen und im Theme ablegen, WordPress erkennt die Datei und inkludiert die Funktionen.
Ergänzung
Mit WordPress 3.0 gibt es einen Filter, der dafür sorgt, dass das P in WordPress immer groß geschrieben wird; muss man aus meiner Sicht nicht haben, kostet nur unnötig Last. Daher entfernt man auch diesen Filter, der auf drei Hooks geht.
// Remove Format WordPress
foreach ( array( 'the_content', 'the_title', 'comment_text' ) as $filter ) {
remove_filter( $filter, 'capital_P_dangit' );
}
Mit 3.0 wurde auch der Filter für relational links umgestellt, daher der folgende Code, der beide Filter beachtet, je nach WordPress version.
if ( !remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ) )
remove_action ('wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0);
Ergänzt von realloc