Likes/Dislikes


Overview

After installing the plugin create a new likes field:

Likes Field Creation

Add it to your desired entry type(s) then render it into your templates with one line:

{{ craft.engagement.render(entry.myLikesFieldHandle) }}

***Note*** By default the field settings has the field disabled for all entries. This can either be turned on for all entries or the editors will need to be set up with the ability to turn it on an entry by entry basis.

Data model and metrics

Use these Likes field properties in Twig to read current counts, behavior settings, icon/text configuration, and the current user’s vote state. You’ll typically access them from your field handle (for example, entry.likesHandle.likeCount) and output what your template needs.

Setting Description
enabledWhether the likes/dislikes widget is enabled for this entry.
idAggregate record ID for this entry/field/site context.
elementIdCraft element ID this likes field belongs to.
fieldIdCraft field ID for this likes field.
siteIdSite ID for this likes/dislikes context.
likeCountTotal number of likes.
dislikeCountTotal number of dislikes.
iconActive icon mode (thumbs, emoji, none, customSvg).
emojiIconLegacy emoji alias (kept for backwards compatibility).
likeEmojiIconEmoji used for the like button in emoji mode.
dislikeEmojiIconEmoji used for the dislike button in emoji mode.
beforeLikeColorBackground/color value used for Like before a like vote is active.
afterLikeColorBackground/color value used for Like when a like vote is active.
beforeDislikeColorBackground/color value used for Dislike before a dislike vote is active.
afterDislikeColorBackground/color value used for Dislike when a dislike vote is active.
likeCustomSvgSVG markup used for the like icon in customSvg mode.
dislikeCustomSvgSVG markup used for the dislike icon in customSvg mode.
allowGuestInteractionsWhether guests can submit like/dislike interactions.
allowVoteChangeWhether users can switch or remove their vote after voting.
headingTextOptional text shown above the likes/dislikes widget.
likeTextOptional label text for the Like button.
dislikeTextOptional label text for the Dislike button.
userVoteCurrent user’s vote state: 1 (like), -1 (dislike), or null (no vote).
totalVotesComputed value: total likes + dislikes.
scoreComputed value: likes minus dislikes.

Field settings

Likes Widget Preview

The Likes/Dislikes field settings let you control how the widget looks, behaves, and can be customized by editors. At a high level, you configure the visual style (icon mode and state colors), interaction rules (guest access and whether users can change votes), display text, and optional per-entry override permissions for editorial teams.

Widget Preview

The Widget Preview shows a live “Before Interaction” and “After Interaction” example so you can quickly validate icon style, color states, and text settings before saving. It is a visual check only and does not cast real likes/dislikes.

Icon Appearance

Use Icon Appearance to choose how like/dislike buttons are rendered. Icon Mode supports built-in options (thumbs, emoji, none, and custom SVG). If you select Emoji, set both Like Emoji Icon and Dislike Emoji Icon. If you select Custom SVG, provide SVG markup for both the like and dislike icons. You can also define before/after color states for both buttons.

Likes Icon Appearance

Like/Dislike Behavior

Default Enabled State determines whether new elements start with the widget enabled. Allow Guest Interactions controls whether non-logged-in visitors can like/dislike. Allow Users to Change Their Vote controls whether users can switch vote direction or remove their vote after interacting.

Likes Behavior

Text Overrides

Text Overrides controls optional messaging around the widget. Text Above Widget appears above the control, while Like Button Text and Dislike Button Text define button labels. These fields support tokenized values such as counts and vote state.

Likes Text Overrides

Editor Overrides

Allow Editor Overrides is the master switch for per-entry customization. When enabled, you can grant granular permissions for what editors may change per entry: widget enabled state, preview visibility, icon appearance, icon colors, guest interaction behavior, vote-change behavior, and text override fields. This keeps defaults consistent while allowing controlled flexibility at the content-entry level.

Likes Editor Overrides