WordPress Mitteilungen beeinflussen

Die Zeiten ändern sich.

Dieser Beitrag scheint älter als 14 Jahre zu sein – eine lange Zeit im Internet. Der Inhalt ist vielleicht veraltet.

Die Mitteilungen von WordPress für den Autor eines Beitrags oder zu Kommentaren sind inhaltlich nicht in jedem Fall den Anforderungen entsprechend. Auch WordPress wusste das und hat diese Funktionen so hinterlegt, dass man sie an seine Bedürfnisse anpassen oder komplett ersetzen kann. Daher möchte ich kurz zeigen, wie man die Mails an seine Bedürfnisse anpasst.

Die beiden Funktionen wp_notify_postauthor() und wp_notify_moderator() sind für das Versenden von Mitteilungen zuständig und sind bewusst von WordPress so implementiert, dass man sie ersetzen kann. Zu finden sind die beiden Funktionen in wp-includes/pluggable.php und dort sind alle Funktionen drin, die WordPress im Vorfeld abfragt (if ( !function_exists('set_current_user') )), so dass man sie leicht ersetzen kann und damit das Blog an eigene Bedürfnisse anpassen kann. Daher ist es ein einfaches die Mitteilungen von WordPress an seine Bedürfnisse anzupassen.

Beispiel der WordPress Mail


Um dies zu realisieren muss jeweils die Funktion als Plugin oder in der functions.php des Themes abgelegt werden. Damit sind sie verfügbar und werden von WP genutzt. Die einfachste Möglichkeit ist es, die beiden Funktionen zu kopieren und inhaltlich anzupassen, so dass sie beispielsweise weniger Infos von WordPress enthalten.


function wp_notify_postauthor($comment_id, $comment_type='') {
    ...
}

function wp_notify_moderator($comment_id) {
    ...
}

So ist es beispielsweise in leichtes nicht die URL zum Löschen des Kommentares in der Mail zu haben, sondern ein Link. Auch dazu ein kleines Beispiel. Die Standard-Zeil, wie im obigen Screenshot, ist wie folgt hinterlegt:


$notify_message .= sprintf( __('Delete it: %s'), admin_url("comment.php?action=cdc&c=$comment_id") ) . "\r\n";

Diese ersetzen wir ein wenig mit HTML und so haben wir einen Link in der Mail.


$notify_message .= sprintf( '<a href="%s">' . __('Delete it') . '</a>', get_option('siteurl') . "/wp-admin/comment.php?action=cdc&c=$comment_id"  . "\r\n" );

Dies soll nur als ein Beispiel dienen und reine Text-Nachrichten sind sicher zu bevorzugen. Trotzdem gibt es immer wieder Anforderungen die Mail anzupassen; die Funktion wp_mail() ist flexibel genug und die Inhalte der Mail lassen sich durch das Ersetzen der beiden Funktionen sauber vom Core trennen und vom Update ist man unabhängig.

Von Frank Bültge

bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.