Home » Like It – einen Like-Button selber bauen
tl;dr: Manchmal will man seine Zustimmung oder Anerkennung zu einem gelungenen Artikel oder Bild ausdrücken, nicht immer mit einem Kommentar – ein einfaches Like reicht aus. Wenn man ohnehin mit Elementor Pro und Dynamic Content for Elementor arbeitet benötigt man keine weitere Software um Likes für seine Seiten, Beiträge oder Custom Posts zu sammeln
Seine Zustimmung zu hinterlassen sollte einfach umzusetzen sein, ohne mühsame Registrierung, zusätzlichem Plugin oder eigener Programmierung. Mit folgenden Voraussetzungen läßt sich das einfach umsetzen (sehr oft hat an diese Tools ohnehin bereits im Einsatz):
Ein Button mit dynamischer Beschriftung, wieviele Personen bereits diesen Button geklickt haben.
Zuerst benötigt man einen Platz, der für jeden Beitrag, jede Seite oder auch jeden Custom Post die Anzahl der Likes speichert. Das kann man mit den WordPress eigenen Individuellen Feldern machen, hier wird aber – weil es bei Projekten sehr oft ohnehin schon installiert wurde – Advanced Custom Fields verwendet. Die kostenlose Version ist hier völlig ausreichend.
Unter
Dashboard > ACF > Feldgruppen
wird eine Gruppe (zB: Likefelder) angelegt und darin ein Feld „likeit“ als numerisches Feld. Bei den Einstellungen darunter wird definiert, dass diese Feldgruppe bei Beiträgen (=Voreinstellung) angezeigt wird. Damit können zu jedem Post Likes eingesammelt werden.
Als nächstes werden die notwendigen Features in Dynamic Content aktiviert:
Dashboard > Dynamic Content > Features > Extensions
Man benötigt:
Letzters ist nicht unbedingt notwendig, damit lassen sich aber von „Keine“ bis „Template“ Feedbacks für den Klick konfigurieren.
Als letztes benötigt man noch den Shortcode der das versteckte Formularfeld mit dem um 1 erhöhten Inhalt des als Formular-Standard-Wert ausgibt.
Man definiert eine Funktion (Zeile 1-4) die den Wert des ACF-Feldes ausliest und um 1 erhöht (Zeile 2) und diesen zurückgibt (Zeile 3).
In Zeile 5 wird der Shortcode der WordPress-Installation bekannt gegeben.
function likeit(){
$like = get_field('likeit')+1;
return($like);
}
add_shortcode( 'likeit', 'likeit' );
Definiert wird das im
Dashboard > Snippets > Add new Snippet | Functions PHP
Der Weg über den selbst definierten Shortcode sprengt zwar die hier sonst übliche Grenze (möglichst kein Code), doch ich habe keine Lösung gefunden, die sich nur im Frontend umsetzen lässt. So kompliziert ist das auch nicht.
Anmerkung: Das elementoreigene CustomCode Feature lässt keinen PHP Code zu, daher das Plugin Code Snippets.
Das war’s auch schon. Man kann das Formular als Globales Widget Speichern oder in einem Seiten/Beitragstemplate verwenden. Natürlich lässt sich mit dem selben Ansatz auch eine Sternewertung vornehmen oder auch eine Like/Dislike Funktion umsetzen.
Etwas unschön ist der Reload der gesamten Seite nach dem Klick, wer hier eine einfach umzusetzende AJAX-Lösung hat möge diese bitte in den Kommentaren posten!
Veröffentlicht am: 23. November 2023
Letztes Update: 4. Januar 2024