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.
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.