Ein paar Kniffe für die WordPress functions.php

Die Datei functions.php in einem WordPress-Theme ist der Standard für den Eingriff in den WordPress-Kern. Neben Plugins, die man natürlich auch entwickeln kann, sollte ein Entwickler tunlichst diese Funktionsbibliothek zur Anpassung und Erweiterung von WordPress nutzen, um sich immer die Möglichkeit zum Upgrade zu behalten.

In dieser zentralen Datei kann ich auf sogenannte Hooks zugreifen, die in Filter-Hooks und Action-Hooks aufgeteilt sind. Das heißt, ich kann meine Funktionen zu bestimmten Zeitpunkten bei der Zusammenstellung des WordPress-Inhaltes meiner Seite durch die WordPress-Engine einhängen. Weiterhin kann ich einige optional verfügbare Module in WordPress ansprechen und konfigurieren. Dazu gehören unter anderem der Thumbnail-Support, die benutzerdefinierten Menüs oder die Widgets.

Hier sind ein paar Funktionen, die ich bei meiner Arbeit am hasematzel.de-Theme zusammengetragen habe:

Support für Windows Live Writer

Wer Windows Live Writer nicht verwendet, der kann den Link auf das notwendige Manifest aus dem Kopf der Seiten entfernen. Dadurch spart man eine Zeile im <head>-Bereich seiner Seite.

/**
* Remove Windows Live Writer
* @link http://wp-snippets.com/remove-wlwmanifest/
*/
remove_action('wp_head', 'wlwmanifest_link');

RSD-Link aus dem head entfernen

Really Simple Discovery ist ein XML-Dialekt, um externe Werkzeuge und Publishing-Software an das Blog anzubinden, beziehungsweise um bestimmte Funktionen des Blogs anderen Werkzeugen zur Verfügung zu stellen. Wer nur über die WordPress-Oberfläche bloggt, sollte den Eintrag ohne Nebeneffekte aus dem <head> entfernen können. Wieder eine Zeile weniger.

/**
* Remove RSD link
* @link http://wp-snippets.com/remove-rsd-link/
*/
remove_action('wp_head', 'rsd_link');

Standard-Stylesheets für Kommentare entfernen (ab Version 2.9.1)

Für das Recent comments-Widget gibt es immer eine Style-Definition im Kopf der HTML-Seite. Dieser wird automatisch hinzugefügt, ob man das Widget nun nutzt oder nicht. In den WordPress-Versionen zwischen 2.8 und 2.91 hat sich der Zugriff auf diesen Filter verändert. Eine gesamte Historie und eine umfangreiche Erklärung kann man im webstractions-Blog nachlesen. Es empfielt sich, die eine Zeile CSS in das eigene Theme-CSS zu übernehmen, um nicht überrascht zu werden, wenn man sich später einmal entscheidet, das Recent comments-Widget zu aktivieren.

.recentcomments a {
    display: inline !important;
    padding: 0 !important;
    margin: 0 !important;
}
/**
* Remove recent comments styling
* @link http://webstractions.com/wordpress/remove-recent-comments-inline-styl/
*/
if (!function_exists('my_remove_recent_comments_style')) {
    function my_remove_recent_comments_style()
    {
        global $wp_widget_factory;
        remove_action(
            'wp_head', array(
                $wp_widget_factory->widgets['WP_Widget_Recent_Comments'],
                'recent_comments_style'
            )
        );
    }
    add_action('widgets_init', 'my_remove_recent_comments_style');
}

Noch ein Wort zu Funktionen: Es ist eine gute Angewohnheit, mit Funktionsnamen zu arbeiten, die offensichtlich als custom-Funktionen zu erkennen sind. Zusätzlich sollte man die Funktionsdefinition und das Einbinden in den Hook mit der PHP-Funktion function_exists() absichern.

Webanalyse-Code nur unter Bedingungen einbinden

Wer ein Analyse-Tool verwendet, welches auf einen Pixelabruf oder einen JavaScript-Tracker angewiesen ist, der sollte diesen nur auf der LIVE-Webseite und nur für andere Benutzer als sich selbst aktivieren. Meistens müssen diese Dinger im head-Bereich oder am Ende der Seite stehen. Die Anzeige kann man dann einfach an die Bedingungen knüpfen:

if (!function_exists('my_page_tracker')) {
    function my_page_tracker()
    {
        // No tracking if logged in as admin
        if (current_user_can('level_10')) {
            return '';
        }
        // No tracking if is dev environment
        if ($_SERVER['HTTP_HOST'] == 'hasematzel.local') {
            return '';
        }
        echo "... my tracking code ...";
    }
    add_action('wp_head', 'my_page_tracker');
}

Anzeige der WordPress-Signatur unterdrücken

WordPress meldet sich selbst mit der Versionsnummer im Kopf der HTML-Seite. Auch diese eine Zeile kann – wer möchte – entfernen.

/**
* Remove wordpress generator element
* @link http://wp-snippets.com/remove-meta-generator/
*/
remove_action('wp_head', 'wp_generator');

Weitere nützliche Tipps & Tricks

Es gibt natürlich mittlerweile unzählige Quellen zum Thema WordPress-Anpassungen. Den WordPress-Codex selbst finde ich reichlich unübersichtlich: Ein paar Sachen sind hervorragend erklärt, manche Sachen sucht man vergeblich. Auf ein paar Quellen möchte ich aber noch direkt hinweisen:

Dieser Beitrag wurde unter Tipps & Tricks, Wordpress veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>