WordPress Funktionen selbst erweitern

WordPress kommt mit einem recht kleinen Funktionsumfang in der Standard Version. Mittels Plugins lassen sich die komplexesten Funktionen problemlos erweitern. Wer kleine Anpassungen braucht kann dies selbst tun.

WordPress selbst erweitern

Um den Funktionsumfang zu erweitern brauchen wir eine zentrale Datei in der die neuen Funktionen abgespeichert werden können.
Jedes WordPress Theme liefert von Haus diese Datei mit, die “functions.php”.

Functions.php vs. Plugin

Diese zentrale Datei lässt uns speziell für dieses Theme den Funktionsumfang erweitern. Wechseln wir anschließend das Theme werden die Änderungen nicht mehr beachtet. Möchten wir nun unabhängig eines Themes WordPress erweitern ist ein Plugin der richtige weg.
In unserem Fall reicht der Weg über die functions.php vollkommen zu.

WordPress erweitern – Filter und Hooks

Der sogennante WordPress Core ist für die Grundfunktionen zuständig. Möchten wir nun Funktionen hinzufügen oder ändern müssen wir dies WordPress mitteilen. An dieser Stelle ist zu erwähnen das keine Anpassungen am Core selbst vorgenommen werden sollen. Bei einem Update auf eine neue Version wären alle Änderungen verloren. Aus diesem Grund liefert WordPress Hooks und Filter um auf die Grundfunktionen von WordPress Einfluss zu nehmen.

Hooks

Mittels Hooks können wir uns an verschiedene Teilen von WordPress “einhaken” und entsprechende Veränderungen am Programmcode vornehmen.
Beispielsweise können wir so zusätzliche Inhalte automatisch an einen Blog Beitrag anhängen. So werden beispielsweise die weiterführenden Beiträge unter jedem Beitrag angezeigt.

// Standard Definition von add_action
add_action( $tag, $function_to_add, $priority, $accepted_args );

// Beispiel: E-Mail an Freunde senden wenn ein Beitrag veröffentlicht wird

function email_friends( $post_ID )
{
$friends = 'bob@example.org, susie@example.org';
wp_mail( $friends, "sally's blog updated", 'I just put something on my blog: http://blog.example.com' );

return $post_ID;
}
add_action( 'publish_post', 'email_friends' );

Damit erweitere ich den Inhalt “content” meines Beitrag und rufe die Funktion “meinefunktion” auf.

Filter

Filter sind den Hooks sehr ähnlich jedoch werden Sie genutzt um Variablen, Eigenschaften oder HTML Code zu manipulieren.
Im Gegensatz werden Hooks für Funktionerweiterungen genutzt wie im oberen Beispiel.

// Standard Definition von add_filter

add_filter( $tag, $function_to_add, $priority, $accepted_args );

// Beispiel: Den Inhalt eines Beitrag um eine weitere Zeile " neuerinhalt" erweitern

function meinefunktion($content) {

$content .= " neuerinhalt";

return $content;
}

add_filter( 'the_content', 'meinefunktion', 10);

Diese beiden Beispiele müssen nur in die functions.php eingefügt und gespeichert werden.
Die neuen Funktionen sind sofort verfügbar.

Verwendete Funktionen