Re:Likes Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
Re:Likes lets readers react to the exact words that stand out to them – not just to a post as a whole.
Readers can select a sentence, paragraph, or part of a comment and mark it with a Like or Dislike. Their reactions stay attached to the selected passage, so they can return later, add new reactions, remove part of an existing reaction, or clear their reactions.
Readers can also switch to an aggregate heatmap that reveals which parts of the content received the strongest response from the wider audience. This makes it possible to see where readers agreed, disagreed, or felt most engaged without interrupting the reading experience.
Re:Likes works with:
- Posts and pages.
- Public custom post types.
- Approved comments.
- Multiple selectable content areas on the same page.
- Logged-in WordPress users and anonymous readers.
- Personal reaction views and aggregate heatmaps.
Reactions are saved as precise text ranges rather than as post metadata. They remain anchored to their passages across common layout changes, including responsive wrapping, resizing, rotation, and font loading.
The plugin includes configurable colors, reaction controls, heatmap appearance, reader features, touch-control placement, content selectors, comment selectors, and theme integration options.
Storage
Re:Likes creates three tables using the site’s WordPress table prefix:
relikes_documentsstores selectable-instance revisions.relikes_subjectsstores one current snapshot identity per reader and document.relikes_runsstores normalized like/dislike offset ranges.
Reaction data is not stored in post meta and no external database is required. Tables and settings are retained on uninstall unless the deletion option is explicitly enabled first.
Identity and privacy
Logged-in identity is always derived by WordPress on the server; a browser-provided user ID is not trusted as authentication. Anonymous readers receive a signed random token. Anonymous identities are pseudonymous and are expired by a daily cleanup task.
IP addresses are used transiently to enforce coarse request limits and are not stored in reaction tables. Anonymous users can create a new identity by clearing browser storage, so rate limiting reduces abuse but cannot guarantee one vote per human.
Theme integration
Default selectors cover common classic and block themes. Custom markup can configure content and comment selectors. When more than one post-content element matches, give each one a stable key and add it to the Allowed instance keys setting, for example:
<section data-relikes-instance="chapter-one">...</section>
Re:Likes does not change post typography or layout. Its compact tool row is exposed through .relikes-wp-tools, .relikes-wp-switch, and .relikes-wp-clear for theme overrides. In theme-controlled mode, set --relikes-control-accent, --relikes-control-background, --relikes-control-border, --relikes-control-text, --relikes-control-active-text, --relikes-control-clear, and --relikes-control-radius on .relikes-wp-tools.
Development notes
The JavaScript core remains backend-agnostic. The WordPress adapter supplies its REST URL, routes, document ID, optional logged-in user ID, nonce header, and request behavior when calling Relikes.attach().
The first release uses lazy per-surface heatmap requests rather than a batch endpoint. This keeps the protocol small while avoiding requests for content far outside the viewport.
Source code
The operational Clean Selection and Re:Likes browser cores are minified with Terser. Their complete readable sources are included beside them as assets/js/cleanselection.js and assets/js/relikes.js. Project source and build tooling are published at https://github.com/reinventinglikes/relikes.



