WordPress Hooks sind ein wunderbares Mittel, bestehenden Programmcode zu erweitern. Wenn ich es in einem Wort beschreiben müsste, würde ich sagen, dass Hooks Platzhalter sind. Dank dieser Platzhalter, kann man individuellen Code ausführen und/oder Text an der jeweiligen Stelle, auch verändert, ausgeben.
Da ich dank der DSGVO gerade ein konkretes Beispiel zur Hand habe, möchte ich euch das natürlich nicht vorenthalten. In meinem heutigen Tutorial zeige ich dir, wie du einen eigenen Text zum WordPress Kommentar mittels Hooks hinzufügen kannst. Damit kann beispielsweise der DSGVO-Hinweis, bevor der Kommentar abgesendet wird, eingeblendet werden. Über der Kommentarfunktion ist meines Erachtens auch ein sehr guter Platz für eine Werbeanzeige. Wer bis zu den Kommentaren scrollt und sie auch noch durchliest, hat vermutlich gesteigertes Interesse an dem Thema. Auch das könntest du damit realisieren. Die Einsatzmöglichkeiten sind also breit gefächert.
Welche Kommentar-Hooks gibt es?
Insgesamt gibt es sechs Stellen, an denen man seinen eigenen Text im WordPress-Kommentar ausgeben kann.
Um es anschaulicher zu gestalten, habe ich die möglichen Hooks visualisiert:
comment_from_before
Mit diesem Hook fügst du Code oder Text vor der “Schreibe einen Kommentar” Aufforderung aus.
comment_from_top
Hiermit wird der Hook vor dem Kommentarfeld ausgeführt.
comment_from_before_fields
Bevor das erste Standardfeld angezeigt wird, kann der gewünschte Code eingefügt werden. Dieser Hook wird nur ausgeloggten Usern angezeigt!
comment_form_after_fields
Wird vor dem Absendebutton ausgeführt. Ideal also für den Hinweis zum Datenschutz. Wird ebenfalls nur ausgeloggten Usern angezeigt!
comment_form
Wird nach dem Absendebutton ausgeführt.
comment_form_after
Noch eine Position darunter.
Kommentar Hook DSGVO Code-Beispiel
Wenn du runter zu meinen Kommentaren scrollst, wirst du sehen, dass ich dort einen Datenschutzhinweis angebracht habe. Da ich selbst kein Anwalt bin, habe ich einfach den Passus aus meiner anwaltlich generierten Datenschutzerklärung hinzugefügt mit dem Hinweis auf die Selbige. Da meine Datenschutzerklärung aus einem Premium-Angebot stammt, kann ich diese hier nicht weiterempfehlen. Für mein Beispiel nutze ich den Passus vom Datenschutzgenerator von Herrn Dr. Schwenke. Hierfür braucht man ab einem gewissen Umsatz jedoch auch eine Lizenz.
Pro forma muss ich an dieser Stelle erwähnen, dass das keine Rechtberatung darstellt und du bei Unklarheiten lieber einen Anwalt konsultieren solltest. Auch übernehme ich keine Haftung für diesen Tipp.
function text_zum_kommentar_hinzufuegen() { echo 'Wenn Nutzer Kommentare oder sonstige Beiträge hinterlassen, können ihre IP-Adressen auf Grundlage unserer berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO für 7 Tage gespeichert werden. Das erfolgt zu unserer Sicherheit, falls jemand in Kommentaren und Beiträgen widerrechtliche Inhalte hinterlässt (Beleidigungen, verbotene politische Propaganda, etc.). In diesem Fall können wir selbst für den Kommentar oder Beitrag belangt werden und sind daher an der Identität des Verfassers interessiert. Des Weiteren behalten wir uns vor, auf Grundlage unserer berechtigten Interessen gem. Art. 6 Abs. 1 lit. f. DSGVO, die Angaben der Nutzer zwecks Spamerkennung zu verarbeiten. Auf derselben Rechtsgrundlage behalten wir uns vor, im Fall von Umfragen die IP-Adressen der Nutzer für deren Dauer zu speichern und Cookies zu verwenden, um Mehrfachabstimmungen zu vermeiden. Die im Rahmen der Kommentare und Beiträge angegebenen Daten, werden von uns bis zum Widerspruch der Nutzer dauerhaft gespeichert. (<a href="https://datenschutz-generator.de/" target="_blank" rel="noopener,nofollow">Erstellt mit Datenschutz-Generator.de von RA Dr Thomas Schwenke</a>) Mehr Informationen zur Datenverarbeitung, der Rechtsgrundlage und Ihren Widerrufsrechten erhalten Sie in unserer <a href="https://deine-domain.de/datenschutzbestimmungen" target="_blank" rel="nofollow noopener">Datenschutzerklärung</a> '; } add_action('comment_form_after_fields', 'text_zum_kommentar_hinzufuegen');
Wie du siehst habe ich eine eigene Funktion mit dem Namen text_zum_kommentar_hinzufügen erstellt. In dieser wird dank dem echo-Befehl der gewünschte HTML-Formatierte Text ausgegeben. Mittels dem <br> Code kannst du noch einen Zeilenumbruch an beliebiger Stelle einfügen. Den Link zu deiner Datenschutzerklärung musst du selbst ergänzen.
Am Ende der eigenen Funktion folgt die add_action() Funktion, die im WordPress-Codex definiert ist. Das Wichtigste, was man an dieser Stelle dazu wissen muss ist, dass in den ersten Anführungszeichen der Name des verwendeten Hooks stehen muss und in den zweiten Anführungszeichen der Name deiner eigenen Funktion.
add_action('name_des_hooks', 'name_deiner_funktion');
Ich habe mich entschieden, den Hook “comment_form_after_fields” für die Ausgabe des Datenschutzhinweises zu verwenden. Zum einen, weil man sich auf meinem Blog gar nicht anmelden kann, es also egal ist, dass er eingeloggt nicht erscheint. Zum anderen finde ich ihn über dem Absendebutton am Sinnvollsten.
Lesetipp: Meine Studie, wie marketingwirksam Blog-Kommentare wirklich sind.
Hook-Einbau
Nun hast du die Funktion und weißt auch, wie man den Hook dank dem add_action()-Befehl ausführt. Doch wohin muss der Code, damit er ausgeführt wird?
Viele WordPress-Ratgeber empfehlen, den Codeschnipsel in der function.php – Datei deines Themes anzuhängen. Das hat allerdings den Nachteil, dass er entweder beim nächsten Update wieder hinzugefügt werden muss oder du im Falle eines Child-Themes keine Sicherheitsupdates eingespielt bekommst.
Deshalb erstelle ich selbst bei kleinen Code-Schnipsel immer ein eigenes (Mini-)Plugin. Dafür sind sie meiner Meinung nach auch da. Wie du ganz einfach und schnell ein eigenes Plugin erstellst, erfährst du hier. In dieses Plugin kopierst du obigen Code-Schnipsel, lädst es hoch und aktivierst es. Und schon hast du lange Zeit deine Ruhe (bis zur nächsten Gesetzesänderung :D).
Zusatztipps – Kommentare & DSGVO
Da das Beispiel vermutlich auch viele Leser, die ihren Blog und im Speziellen die WordPress-Kommentare DSGVO-Konform gestalten möchten, habe ich abschließend noch vier Handlungsempfehlungen für euch, die ihr unbedingt umsetzen solltet:
1. Name darf kein Pflichtfeld sein
Im Dashboard unter Einstellungen->Diskussion den Haken bei “Benutzer müssen zum Kommentieren Name und E-Mail-Adresse angeben” entfernen. Laut DSGVO darf man nur die persönlichen Daten einfordern, die wirklich nötig sind.
2. Avatare deaktivieren
Da die Kommentar-Avatare über den externen Server von Gravatar bezogen werden, kann man die Funktion gar nicht ohne den Austausch von persönlichen Daten realisieren. Das DSGVO konform zu gestalten ist rechtlich unsicher und technisch auch nicht ganz ohne. Also deaktiviert es lieber.
Zu finden ebenfalls im Dashboard unter Einstellungen->Diskussion. Am Ende den Haken bei “Avatare anzeigen” entfernen.
3. Datenschutzkonformes Spam-Plugin verwenden
Viele WordPress-Seiten haben von Haus aus Akismet als Anit-Spam-Plugin installiert. Das leitet die IP-Adresse und den Kommentar selbst an Servern im Ausland weiter. Dafür bräuchtest du einen AV-Vertrag und die Erlaubnis der User.
Am Besten du verwendest ein Spam-Plugin, dass das nicht tut. Beziehungsweise, bei dem man es deaktivieren kann. Das deutsche Plugin Antispam Bee kann man datenschutzkonform einstellen. Wie das funktioniert, kannst du in diesem Blogbeitrag nachlesen.
4. IP-Adresse des Kommentierenden löschen
In der Datenschutzerklärung selbst steht, dass die IP-Adressen nach sieben Tagen gelöscht werden. Das solltest du auch einhalten. Leider gibt es kein Plugin, dass das automatisch nach sieben Tagen macht. Das Plugin Remove Comments IP macht das nach 60 Tagen. Manuell kann man das auch in der Datenbank mit folgendem SQL-Befehl machen:
UPDATE `wp_comments` SET `comment_author_IP`='127.0.0.1' WHERE `comment_date` <= '2018-06-05'
Wobei wp_ der Standardprefix ist. Sollten deine Tabellen einen anderen Prefix (in diesem Beitrag erkläre ich, was ein Tabellenprefix ist) verwenden musst du diesen anpassen. Das Datum solltest du natürlich auch anpassen in Heute minus sieben Tage. Im Format Jahr, Monat, Tag.
Du kommst bei deinem Projekt nicht weiter oder brauchst einen Boost? Dann lass dir von mir helfen zum Beispiel bei: ► Beratung für Selbständige, Gründer & Ideenschmiede Egal, ob du erste Tipps brauchst. Einmal über deine Idee reden möchtest oder mit mir das Konzept für das nächste Facebook ausarbeiten willst. ► Entwicklung von Software, APPs & Webseiten Beispielsweise: WordPress Shops & Plugins, (Gaming-)Apps, Datenbank-Applikationen oder andere smoothe Anwendungen! Mehr Infos, Preise und Kontaktmöglichkeiten findest du hier! |
Hm, eigentlich bin ich auf der Suche, wie und wo ich nach dem Namen des Kommentators ein Satz einbauen kann. Leider konnte ich in diesem Beitrag nichts dazu finden, oder ich habe es übersehen.
Schade!
Da finde ich keinen Filter für. Das muss man wohl im Code hart austauschen.
Danke, sehr guter Artikel.
Vielen Dnak für die tolle Erklärung. Weiter so
Vielen Dank für den Beitrag… hat mir sehr geholfen!