Reactions
Das Reactions-Modul ergänzt Analyse-Kommentare, WordPress-Blogbeiträge und WordPress-Kommentare um eine Like/Dislike-Funktion. Nur eingeloggte Nutzer können reagieren – so bleiben Reactions aussagekräftig und frei von Spam.
Allgemein
Funktionsweise
Unter jedem unterstützten Inhalt erscheinen zwei Schaltflächen – Daumen hoch und Daumen runter. Die Stimme wird per AJAX ohne Seitenreload übermittelt. Ein erneuter Klick auf die bereits aktive Reaktion entfernt sie wieder, ein Klick auf die jeweils andere wechselt die Reaktion. Die aktuelle Verteilung der Likes und Dislikes wird in Echtzeit angezeigt.
Wo Reactions erscheinen
Automatisch integriert, ohne separate Ein-/Ausschalter pro Bereich: unter Analyse-Kommentaren (wenn das Analyse-Modul sie rendert), am Ende jedes WordPress-Blogbeitrags („War dieser Beitrag hilfreich?“) sowie unter jedem WordPress-Kommentar – jeweils nur sichtbar für eingeloggte Nutzer.
Admin-Übersicht
Unter Weinhold → Reactions zeigt eine reine Auswertungsseite die Gesamtzahl an Likes/Dislikes sowie die zehn am meisten gelikten Inhalte mit direktem Link. Keine Einstellungen, nur Statistik.
Dateien
modules/reactions.php – einzige Datei des Moduls: Datenbank, AJAX-Handler, Rendering für alle drei Integrationspunkte, Admin-Auswertungsseite.
Für Entwickler
Datenbank
Spalte Typ Bedeutung object_type varchar(50) analyse_comment, post oder wp_comment object_id bigint ID des bewerteten Objekts user_id bigint Wer reagiert hat reaction enum(‚like‘,’dislike‘) Die Reaktion created_at_gmt datetime Zeitstempel (UTC)
Unique-Key auf (object_type, object_id, user_id) – genau eine Reaktion pro Nutzer und Objekt, ein Wechsel überschreibt statt zu duplizieren.
Eigene Inhalte anbinden
Für einen neuen Inhaltstyp genügt ein Aufruf von weinhold_reactions_render($object_type, $object_id) an der gewünschten Stelle (per do_action(‚weinhold_reactions_render‘, $type, $id), wie es das Analyse-Modul für seine Kommentare tut) oder ein eigener Content-Filter analog zu weinhold_reactions_append_to_post(). weinhold_reactions_get_counts($object_type, $object_id) liefert Like-/Dislike-Zahlen sowie die eigene Reaktion des aktuell eingeloggten Nutzers.
AJAX
Einziger Endpunkt wp_ajax_weinhold_reaction_toggle (kein nopriv-Pendant – nicht eingeloggte Anfragen werden mit 403 abgelehnt). Erwartet object_type, object_id, reaction und einen Nonce.
object_type ist bewusst ein freier String statt eines festen Enums in der Anwendungslogik (die Datenbank erlaubt jeden Wert bis 50 Zeichen) – die AJAX-Validierung schränkt aktuell zwar auf analyse_comment/post/wp_comment ein, weitere Typen lassen sich aber ohne Schema-Änderung ergänzen. the_content und the_excerpt werden beide gefiltert, damit Reactions sowohl auf Einzelbeitrags- als auch auf Übersichtsseiten erscheinen, je nachdem welche Funktion das aktive Theme nutzt.Besonderheiten
Keine Konfigurationsmöglichkeit, wo Reactions erscheinen sollen – die drei Integrationspunkte (Analyse-Kommentare, Blogbeiträge, WP-Kommentare) sind fest im Code verdrahtet, nicht über Einstellungen abschaltbar.
Versionshistorie
Version Datum Änderung 1.0.0 22.09.2026 Einführung der Versionierung.