Title: Awesome Content Reactions
Author: Bahar Hussain
Published: <strong>October 30, 2026</strong>
Last modified: October 30, 2026

---

Search plugins

![](https://ps.w.org/baharhussain-content-reactions/assets/banner-772x250.png?rev
=3774551)

![](https://ps.w.org/baharhussain-content-reactions/assets/icon.svg?rev=3774551)

# Awesome Content Reactions

 By [Bahar Hussain](https://profiles.wordpress.org/baharhussain99/)

[Download](https://downloads.wordpress.org/plugin/baharhussain-content-reactions.3.0.0.zip)

 * [Details](https://wordpress.org/plugins/baharhussain-content-reactions/#description)
 * [Reviews](https://wordpress.org/plugins/baharhussain-content-reactions/#reviews)
 *  [Installation](https://wordpress.org/plugins/baharhussain-content-reactions/#installation)
 * [Development](https://wordpress.org/plugins/baharhussain-content-reactions/#developers)

 [Support](https://wordpress.org/support/plugin/baharhussain-content-reactions/)

## Description

Awesome Content Reactions lets visitors add likes and emoji reactions to WordPress
posts, pages, and public custom post types. Display reaction buttons automatically,
with a Gutenberg block, or using a shortcode. Customize emojis, labels, and layouts,
and view reaction analytics inside WordPress.

Reaction data stays in your WordPress database. The plugin supports guest and signed-
in reactions, keyboard navigation, screen-reader labels, and six responsive layouts.

Features:

 * Seven Unicode emoji defaults with editable labels, accessible text, colors, and
   order; add your own reactions with Unicode emoji or PNG/WebP Media Library icons.
 * Up to 20 reactions displayed at once (“Maximum reactions shown” setting).
 * Guest or signed-in reactions, with separate controls for changing and removing
   a reaction.
 * One-reaction and multiple-reaction visitor modes.
 * Posts, pages, products, and public custom post types.
 * Automatic placement after or before the content, or manual placement only.
 * Dynamic Content Reactions block (with wide/full alignment and HTML anchor), `[
   bhcr_reactions]` shortcode, and PHP helpers.
 * Six layouts: Inline Minimal, Inline Outlined, Inline Soft, Floating Vertical,
   Floating Horizontal, and Floating Expandable. One selected layout is used on 
   every screen size; on archive views the floating layouts render as their matching
   inline style so several posts do not stack.
 * Keyboard-accessible buttons that keep focus while saving, screen-reader names
   that include the count, live announcements, and reduced-motion support.
 * Analytics with filters, sorting, pagination, per-content and bulk reset, and 
   filtered CSV export.
 * Privacy Policy Guide text, personal-data exporter, and eraser integration.

### Privacy

For guests who react, the plugin sets the `bhcr_visitor` first-party cookie for 
one year. It contains a random anonymous identifier. The site stores a keyed hash
of it with the content ID, reaction key, and timestamps. For signed-in people, their
WordPress user ID is stored instead. Rate limiting keeps a keyed hash of the connecting
IP address in a temporary cache entry for at most 10 minutes. No raw IP address 
or fingerprint is stored with reactions, and no data is sent to external services.
Reactions are removed when their content or user account is permanently deleted.

## Screenshots

[⌊Like and emoji reaction buttons on a WordPress post.⌉⌊Like and emoji reaction 
buttons on a WordPress post.⌉[

Like and emoji reaction buttons on a WordPress post.

[⌊General settings for guest access, reaction behaviour, and placement.⌉⌊General
settings for guest access, reaction behaviour, and placement.⌉[

General settings for guest access, reaction behaviour, and placement.

[⌊Configurable reaction labels, emoji, colours, and ordering.⌉⌊Configurable reaction
labels, emoji, colours, and ordering.⌉[

Configurable reaction labels, emoji, colours, and ordering.

[⌊Six layout presets for inline and floating reaction buttons.⌉⌊Six layout presets
for inline and floating reaction buttons.⌉[

Six layout presets for inline and floating reaction buttons.

[⌊Local reaction analytics with filters and CSV export.⌉⌊Local reaction analytics
with filters and CSV export.⌉[

Local reaction analytics with filters and CSV export.

## Blocks

This plugin provides 1 block.

 *   Content Reactions Display reactions for the current post.

## Installation

 1. Install the plugin from Plugins > Add New, or upload its ZIP there.
 2. Activate Awesome Content Reactions.
 3. Configure it under Content Reactions in the WordPress admin menu.

## FAQ

### How do I add a like button to WordPress posts?

Enable automatic placement under Content Reactions > General. You can also place
reaction buttons manually with the Content Reactions block or the `[bhcr_reactions]`
shortcode. Enable the Like reaction and disable other reactions if you want to show
only a like button.

### Can visitors react without logging in?

Yes. Enable guest reactions in the plugin settings. A first-party cookie identifies
returning guests after their first reaction; clearing cookies creates a new anonymous
identity.

### I used Post Reactions. How do I move to this plugin?

This plugin is the renamed successor of Post Reactions 2.3.0. Install and activate
it, then deactivate Post Reactions; while Post Reactions is active, this plugin 
waits and shows a notice. On the next page load it moves the reactions table, settings,
reaction definitions, and per-post choices. Existing `[bh_post_reactions]` shortcodes
and Post Reactions blocks keep rendering on the site, and guests keep their reactions.
Delete Post Reactions only after the move (if it was already deleted with “Keep 
reaction data” on, its data is still moved). On multisite, each site moves its own
data on its first page load. Theme code that calls `bh_post_reactions_render()` 
or uses `bh_post_reactions_*` filters must switch to the `bhcr_` names.

### Does this send data to another service?

No. Reaction data stays in the site’s WordPress database.

### How are guests recognized?

When a guest reacts for the first time, the site sets a first-party, HTTP-only cookie
named `bhcr_visitor` that holds a random anonymous identifier for one year. Viewing
reactions does not set the cookie. The database stores a keyed hash of the identifier,
not the cookie value or an IP address. Clearing cookies creates a new anonymous 
identity, so guest reactions are not a strong one-person-one-vote mechanism.

### Is there protection against scripted voting?

Reaction writes are rate limited per visitor identity and per network address for
each piece of content. The network limit uses a keyed hash of the connecting IP 
address in a short-lived cache entry (at most 10 minutes). Behind a reverse proxy
that does not pass the visitor address to PHP, use the `bhcr_rate_limits` filter
to adjust or disable the network limit. Limits are exact with a persistent object
cache; without one they are approximate under bursts of simultaneous requests. Rate
limiting slows scripted voting; it does not make anonymous voting abuse-proof.

### Does it work with page caches and CDNs?

Yes. Pages contain no personal reaction state; each visitor’s state is loaded from
the REST API, whose responses are sent with `Cache-Control: private, no-store`. 
If a CDN or proxy is set to cache everything regardless of headers, exclude `/wp-
json/bhcr/` and bypass the cache for signed-in visitors, or visitors may see each
other’s selections.

### How do I place reactions manually?

Choose “Manual only” under Content Reactions > General > Automatic placement, then
use the Content Reactions block, `[bhcr_reactions]`, or `bhcr_render()` in a theme.
The shortcode accepts `post_id`, `reactions` (comma-separated keys), and `layout`(
one of the six layout keys). A block placed in a site-editor template or template
part is detected, so automatic placement does not add a second component.

### Why does a reaction not appear?

Check that the reaction is enabled, that its position is within “Maximum reactions
shown”, and, for a single post, whether the post’s Content Reactions box uses “Use
all enabled reactions” or a specific selection.

### Can a theme restyle the buttons?

Frontend styles are scoped to the component and use high-specificity selectors so
that generic theme button styles do not change it. To customize it, target the component’s
own `bh-post-reactions` classes with a selector of equal or higher specificity.

### Does deletion remove data?

Data is preserved by default. Disable “Keep reaction data” under Content Reactions
> Tools before deleting the plugin to remove plugin options, post meta, and the 
custom table. On multisite, each site’s own setting is respected.

### Can I use SVG reaction icons?

No. PNG and WebP Media Library images are supported. SVG upload stays disabled because
safely accepting arbitrary SVG requires a dedicated sanitizer.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Awesome Content Reactions” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Bahar Hussain ](https://profiles.wordpress.org/baharhussain99/)

[Translate “Awesome Content Reactions” into your language.](https://translate.wordpress.org/projects/wp-plugins/baharhussain-content-reactions)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/baharhussain-content-reactions/),
check out the [SVN repository](https://plugins.svn.wordpress.org/baharhussain-content-reactions/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/baharhussain-content-reactions/)
by [RSS](https://plugins.trac.wordpress.org/log/baharhussain-content-reactions/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 3.0.0

 * Renamed from Post Reactions to Awesome Content Reactions. Every function, class,
   option, hook, block, shortcode, REST route, and cookie now uses the `bhcr` prefix;
   data from Post Reactions is moved automatically (see the FAQ).
 * Fixed: on multisite, code that deleted another site’s content inside `switch_to_blog()`
   removed the current site’s reactions instead.
 * Fixed: a block placed in a template part, a nested part, or a synced pattern 
   rendered twice with automatic placement.

#### 2.3.0

Released as Post Reactions. Fixed lost votes from additional guests and signed-in
users, an admin fatal error after older upgrades, race conditions in changing and
removing reactions, rate limiting, duplicate components with automatic placement,
theme style interference, and several accessibility, privacy, and multisite issues.

## Meta

 *  Version **3.0.0**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.4 or higher **
 *  Tested up to **7.1.4**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [emoji reactions](https://wordpress.org/plugins/tags/emoji-reactions/)[engagement](https://wordpress.org/plugins/tags/engagement/)
   [feedback](https://wordpress.org/plugins/tags/feedback/)[like button](https://wordpress.org/plugins/tags/like-button/)
   [post reactions](https://wordpress.org/plugins/tags/post-reactions/)
 *  [Advanced View](https://wordpress.org/plugins/baharhussain-content-reactions/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/baharhussain-content-reactions/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/baharhussain-content-reactions/reviews/)

## Contributors

 *   [ Bahar Hussain ](https://profiles.wordpress.org/baharhussain99/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/baharhussain-content-reactions/)