reactions


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


SpalteTypBedeutung
object_typevarchar(50)analyse_comment, post oder wp_comment
object_idbigintID des bewerteten Objekts
user_idbigintWer reagiert hat
reactionenum(‚like‘,’dislike‘)Die Reaktion
created_at_gmtdatetimeZeitstempel (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.

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.

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.

Versionshistorie

VersionDatumÄnderung
1.0.022.09.2026Einführung der Versionierung.