{"id":360902,"date":"2026-09-16T04:48:17","date_gmt":"2026-09-16T04:48:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/commentaura\/"},"modified":"2026-10-01T02:10:07","modified_gmt":"2026-10-01T02:10:07","slug":"commentaura","status":"publish","type":"plugin","link":"https:\/\/kab.wordpress.org\/plugins\/commentaura\/","author":21017071,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"CommentAura","header_author":"Ibrahim Riaz","header_description":"The modern discussion platform for WordPress. Your comments stay native WordPress comments \u2014 always.","assets_banners_color":"1e252a","last_updated":"2026-10-01 02:10:07","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/waafaa.com\/product\/commentaura\/","header_author_uri":"https:\/\/profiles.wordpress.org\/ibrahimriaz\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":199,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.0":{"tag":"0.1.0","author":"ibrahimriaz","date":"2026-09-16 05:07:14","revision":3697919},"0.2.0":{"tag":"0.2.0","author":"ibrahimriaz","date":"2026-09-27 09:25:00","revision":3715236},"1.0.0":{"tag":"1.0.0","author":"ibrahimriaz","date":"2026-10-01 02:10:07","revision":3722277}},"upgrade_notice":{"1.0.0":"<p>A redesigned comment section with 3D reactions, plus in-place voting, replies and edits. Nothing to change on your site.<\/p>","0.2.0":"<p>Fixes a vote counting twice when a guest logs in, and adds hooks for add-ons. Nothing to change on your site.<\/p>","0.1.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3697919,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3697919,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3697919,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3697919,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.0","0.2.0","1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3722277,"resolution":"1","location":"assets","locale":"","width":1280,"height":1627},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3722277,"resolution":"2","location":"assets","locale":"","width":1280,"height":595},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3722277,"resolution":"3","location":"assets","locale":"","width":1280,"height":900},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3722277,"resolution":"4","location":"assets","locale":"","width":2880,"height":1800},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3722277,"resolution":"5","location":"assets","locale":"","width":2880,"height":1400}},"screenshots":{"1":"The comment thread: soft bubbles, coloured initials, reaction counts on each bubble and a quiet Like, Reply and time row. Rendered on the server as plain HTML, so it all works with JavaScript turned off.","2":"The reaction bar. Rest on Like (or long-press on a phone) and a bar of 3D faces opens; each face grows and shows its name.","3":"Reaction settings, with a live preview. Choose the faces, their order, their names and their icons.","4":"The dashboard. Activity counts at a glance, with integration, caching, spam and notification health underneath.","5":"Import \/ Export. Bring a Disqus export in with a dry run first, or download every comment as JSON."}},"plugin_section":[],"plugin_tags":[6074,107,5708,1699,11780],"plugin_category":[44],"plugin_contributors":[280989],"plugin_business_model":[],"class_list":["post-360902","plugin","type-plugin","status-publish","hentry","plugin_tags-comment-moderation","plugin_tags-comments","plugin_tags-discussion","plugin_tags-disqus","plugin_tags-reactions","plugin_category-discussion-and-community","plugin_contributors-ibrahimriaz","plugin_committers-ibrahimriaz"],"banners":{"banner":"https:\/\/ps.w.org\/commentaura\/assets\/banner-772x250.png?rev=3697919","banner_2x":"https:\/\/ps.w.org\/commentaura\/assets\/banner-1544x500.png?rev=3697919","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/commentaura\/assets\/icon-128x128.png?rev=3697919","icon_2x":"https:\/\/ps.w.org\/commentaura\/assets\/icon-256x256.png?rev=3697919","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/commentaura\/assets\/screenshot-1.png?rev=3722277","caption":"The comment thread: soft bubbles, coloured initials, reaction counts on each bubble and a quiet Like, Reply and time row. Rendered on the server as plain HTML, so it all works with JavaScript turned off."},{"src":"https:\/\/ps.w.org\/commentaura\/assets\/screenshot-2.png?rev=3722277","caption":"The reaction bar. Rest on Like (or long-press on a phone) and a bar of 3D faces opens; each face grows and shows its name."},{"src":"https:\/\/ps.w.org\/commentaura\/assets\/screenshot-3.png?rev=3722277","caption":"Reaction settings, with a live preview. Choose the faces, their order, their names and their icons."},{"src":"https:\/\/ps.w.org\/commentaura\/assets\/screenshot-4.png?rev=3722277","caption":"The dashboard. Activity counts at a glance, with integration, caching, spam and notification health underneath."},{"src":"https:\/\/ps.w.org\/commentaura\/assets\/screenshot-5.png?rev=3722277","caption":"Import \/ Export. Bring a Disqus export in with a dry run first, or download every comment as JSON."}],"raw_content":"<!--section=description-->\n<p>CommentAura turns the native WordPress comment section into a modern discussion experience, without taking your data hostage.<\/p>\n\n<p>Everything is stored in <code>wp_comments<\/code> and <code>wp_commentmeta<\/code>, exactly where WordPress puts it. Deactivate CommentAura and every comment, every reply, and every permalink still works. That is not a migration path \u2014 it is the architecture.<\/p>\n\n<h4>Built on three promises<\/h4>\n\n<p><strong>1. Zero lock-in.<\/strong> Your comments are native WordPress comments. No iframe, no external service, no account for your visitors, no export step if you leave. Uninstalling removes CommentAura's own data and never touches a single comment.<\/p>\n\n<p><strong>2. It works without JavaScript.<\/strong> The comment thread is rendered on the server, in your page's HTML. Search engines index it. Readers with slow connections see it. Screen readers read it. Reading, posting, editing, voting and reacting all work as plain form submissions. JavaScript only makes them faster: a half-kilobyte script loads with the page, and the rest \u2014 including WordPress's own React library \u2014 loads only when a reader scrolls near the comments. You can switch it off in Settings.<\/p>\n\n<p><strong>3. No ads, no trackers, no third-party requests.<\/strong> CommentAura sends nothing to anyone. There is no analytics beacon, no CDN call, no \"sponsored\" content injected into your discussions.<\/p>\n\n<h4>What you get<\/h4>\n\n<ul>\n<li><strong>A comment section that feels familiar<\/strong> \u2014 soft comment bubbles, a quiet Like \u00b7 Reply \u00b7 time row, Top \/ Newest \/ Oldest sorting, and a \"\u22ef\" menu that keeps moderator tools out of readers' way<\/li>\n<li><strong>3D reactions<\/strong> people already know: Like, Love, Care, Haha, Wow, Sad and Angry by default. Rest on Like, long-press on a phone, or use the keyboard. Choose which of 16 faces appear, their order, their names and their icons \u2014 or add your own<\/li>\n<li><strong>Threaded discussions<\/strong> that work with both classic themes and block\/full-site-editing themes<\/li>\n<li><strong>Comment subscriptions<\/strong> with proper double opt-in \u2014 nobody is emailed until they confirm, and every notification carries a one-click unsubscribe<\/li>\n<li><strong>Voting<\/strong>, one switch away in Settings, with duplicate prevention enforced by the database rather than hopeful bookkeeping<\/li>\n<li><strong>Comment editing<\/strong> for a configurable window, with every revision retained so moderators can always see what a comment used to say<\/li>\n<li><strong>Pinned comments<\/strong> and per-post discussion closing<\/li>\n<li><strong>A spam baseline<\/strong> \u2014 honeypot and timing checks, no CAPTCHA. CAPTCHAs tax every honest reader to inconvenience a bot that can solve them for a fraction of a cent. Works alongside Akismet if you use it.<\/li>\n<li><strong>Rate limiting that does not punish shared networks.<\/strong> WordPress core matches floods on IP <em>or<\/em> email, so two unrelated visitors behind one office or mobile network block each other. CommentAura keys on identity and address together.<\/li>\n<li><strong>Full GDPR support<\/strong> \u2014 registered with WordPress's own personal-data exporter and eraser.<\/li>\n<li><strong>Privacy by construction<\/strong> \u2014 guest identities are stored as a one-way salted hash, never as a raw IP address.<\/li>\n<\/ul>\n\n<h4>Moving in, and moving out<\/h4>\n\n<p>Under <strong>CommentAura \u2192 Import \/ Export<\/strong>:<\/p>\n\n<ul>\n<li><strong>Import from Disqus.<\/strong> Point it at a Disqus export file. Threads are matched to your posts by URL \u2014 including your old domain, since a move away from Disqus usually follows a domain change \u2014 and a discussion that cannot be matched is skipped rather than attached to the wrong post. Re-running the same file imports nothing twice.<\/li>\n<li><strong>Dry run first, always.<\/strong> Every import previews exactly what it would do before anything is written. That is the default.<\/li>\n<li><strong>Switch from another comment plugin.<\/strong> Your comments need no migration at all \u2014 wpDiscuz, Jetpack Comments and Subscribe to Comments Reloaded all store them in <code>wp_comments<\/code> already, which is where CommentAura reads from. What those plugins keep in their own tables is the material <em>around<\/em> the comments, so CommentAura brings across the part that would otherwise be lost: subscriber lists and votes. Nothing is deleted from the other plugin, and running it twice does not double anything.<\/li>\n<li><strong>Export every comment as JSON<\/strong>, streamed in batches so the size of your site does not decide whether the export finishes.<\/li>\n<\/ul>\n\n<p>Note that Disqus exports produced since 2019 contain no email addresses and no IP addresses for guest commenters. CommentAura preserves the display name, imports with an empty address, and tells you how many were affected rather than letting you find out from a support ticket.<\/p>\n\n<h4>Performance<\/h4>\n\n<p>A page with CommentAura active but no comment thread loads <strong>zero<\/strong> CommentAura assets. Not a small file \u2014 none.<\/p>\n\n<p>A page with a thread loads about 10 KB (compressed) until a reader reaches the comments. Everything CommentAura itself ships comes to about 19 KB. WordPress's own React library, which the interactive parts use, loads only when the comments come into view. Reaction faces are small images, about 1 KB each, loaded only when they are shown.<\/p>\n\n<p>Rendering a thread costs a fixed number of database queries regardless of how many comments a post has, because replies are fetched per level rather than per comment. A post with 10 comments and a post with 10,000 cost the same.<\/p>\n\n<h4>Credits<\/h4>\n\n<p>The reaction faces are Fluent Emoji by Microsoft (https:\/\/github.com\/microsoft\/fluentui-emoji), used under the MIT licence. The licence ships with the plugin in <code>assets\/reactions\/LICENSE.txt<\/code>. The faces are bundled inside the plugin; nothing is loaded from Microsoft or anyone else.<\/p>\n\n<h4>Developer friendly<\/h4>\n\n<ul>\n<li>A documented REST API under <code>commentaura\/v1<\/code><\/li>\n<li>Every template is an overridable partial you can copy into your theme<\/li>\n<li>Named callbacks throughout, so hooks can actually be removed<\/li>\n<li>PSR-4, PHP 8.1+, strict types, PHPStan level 8<\/li>\n<li>The readable source of every script ships in <code>assets\/src<\/code>, next to its build in <code>assets\/build<\/code><\/li>\n<\/ul>\n\n<h4>Source code<\/h4>\n\n<p>The scripts in <code>assets\/build<\/code> are compiled from <code>assets\/src<\/code> with <code>@wordpress\/scripts<\/code> 30, using the <code>webpack.config.js<\/code> included in the plugin. To rebuild them, run <code>npm install @wordpress\/scripts@30<\/code> and then <code>npx wp-scripts build<\/code> in the plugin folder.<\/p>\n\n<h4>Optional paid add-on<\/h4>\n\n<p>Everything described on this page is free and stays free. A separate paid plugin, CommentAura Pro, sold at https:\/\/waafaa.com\/product\/commentaura\/, adds tools for the people who run the discussion: a moderation queue, rules, AI triage and analytics. It is never needed to use anything in this plugin.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install the plugin through <strong>Plugins \u2192 Add New<\/strong>, or upload the folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate it.<\/li>\n<li>That is it \u2014 your existing comments are already there.<\/li>\n<\/ol>\n\n<p>Optional settings live under <strong>CommentAura \u2192 Settings<\/strong> in your admin menu. There are deliberately few of them.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"will%20i%20lose%20my%20comments%20if%20i%20deactivate%20this%3F\"><h3>Will I lose my comments if I deactivate this?<\/h3><\/dt>\n<dd><p>No. This is the entire point of the plugin. Comments live in WordPress's own tables the whole time. Deactivate CommentAura and your theme's normal comment display returns, with every comment, reply, and link intact.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20page%20caching%3F\"><h3>Does it work with page caching?<\/h3><\/dt>\n<dd><p>Yes. The thread is rendered into the page itself and sets no cookies, so a post with comments caches exactly like a post without them. Posting goes through WordPress's own comment handler as a normal form submission, which is never served from a cache \u2014 so commenting works on a fully cached page without the plugin having to punch a hole in it.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20block%20themes%3F\"><h3>Does it work with block themes?<\/h3><\/dt>\n<dd><p>Yes. CommentAura integrates with both the classic <code>comments_template()<\/code> path and the block editor's <code>core\/comments<\/code> block, and produces identical output through either.<\/p><\/dd>\n<dt id=\"do%20my%20visitors%20need%20javascript%3F\"><h3>Do my visitors need JavaScript?<\/h3><\/dt>\n<dd><p>No. Reading, posting, editing, voting and reacting all work with JavaScript disabled. With JavaScript, those happen without a page reload, replies open under the comment you are answering, and an unsent draft is kept in your browser.<\/p><\/dd>\n<dt id=\"does%20it%20send%20data%20anywhere%3F\"><h3>Does it send data anywhere?<\/h3><\/dt>\n<dd><p>No. There are no third-party requests of any kind.<\/p><\/dd>\n<dt id=\"can%20i%20choose%20the%20reactions%3F\"><h3>Can I choose the reactions?<\/h3><\/dt>\n<dd><p>Yes. Under <strong>CommentAura \u2192 Settings \u2192 Engagement \u2192 Reactions<\/strong> you switch faces on or off, drag them into order, rename them, swap their icons and add your own, with a live preview beside the settings. One face on its own turns the bar into a simple Like button. Stored reactions are never lost: a face you switch off keeps its counts and brings them back when you switch it on again.<\/p><\/dd>\n<dt id=\"where%20are%20votes%20and%20reactions%20stored%3F\"><h3>Where are votes and reactions stored?<\/h3><\/dt>\n<dd><p>In CommentAura's own tables, because they do not fit WordPress's comment schema. Your comments themselves are never copied, shadowed, or moved.<\/p><\/dd>\n<dt id=\"is%20there%20a%20captcha%3F\"><h3>Is there a CAPTCHA?<\/h3><\/dt>\n<dd><p>No, and that is deliberate. CommentAura uses an invisible honeypot and a timing check instead, which cost your readers nothing.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<p>A new, familiar look with 3D reactions. Comments now work without page reloads, and two bugs that made comments look lost are fixed.<\/p>\n\n<ul>\n<li>New: A redesigned comment section: soft comment bubbles, a quiet Like, Reply and time row, and a \"\u22ef\" menu that keeps moderator tools out of readers' way.<\/li>\n<li>New: 3D reactions. Rest on Like, long-press on a phone, or press Enter to open a bar of faces. Each person holds one reaction per comment.<\/li>\n<li>New: Reaction settings under Engagement. Choose from 16 faces or add your own, reorder, rename and swap icons, with a live preview.<\/li>\n<li>New: Sort comments by Top, Newest or Oldest.<\/li>\n<li>Improved: Voting is off by default on new sites, because reactions are now the main feedback. Existing sites keep voting as they had it.<\/li>\n<li>New: Voting, reacting, replying, editing and loading more comments now happen in place, without reloading the page. Everything still works with JavaScript switched off.<\/li>\n<li>New: A comment box with a formatting toolbar and keyboard shortcuts, and an unsent comment is kept in your browser if you leave the page by accident.<\/li>\n<li>New: Long reply chains fold behind \"View more replies\".<\/li>\n<li>Improved: A cleaner, simpler look for every CommentAura admin screen and a tighter comment thread, with far less text to read.<\/li>\n<li>New: A setting to switch the interactive parts off, which leaves no CommentAura script on any page.<\/li>\n<li>New: An Upgrade page, last in the CommentAura menu, describing the optional paid add-on. There are no notices or banners anywhere else.<\/li>\n<li>Improved: Signed-in visitors see one short \"Signed in as\" line above the comment box.<\/li>\n<li>Improved: When a visitor edits an approved comment, the new text goes through the same spam and moderation checks as a new comment.<\/li>\n<li>Fixed: Held, spam and trashed comments can no longer be voted on or reacted to.<\/li>\n<li>Fixed: A spam comment no longer sends a subscription confirmation email, and a pending subscription is re-sent at most once a day.<\/li>\n<li>Fixed: Disqus imports from the Import \/ Export screen were refused with \"Sorry, you are not allowed to upload this file type\".<\/li>\n<li>Fixed: A guest who did not tick \"Save my name\" could not see their own comment while it waited for moderation, so it looked lost.<\/li>\n<li>Improved: Long threads render faster: replies are fetched once per level instead of once per comment.<\/li>\n<li>Improved: The plugin's homepage link now points to waafaa.com\/product\/commentaura\/.<\/li>\n<li>Developers: New filters <code>commentaura_island_scripts<\/code> (load an add-on's own script the same lazy way) and <code>commentaura_collapse_after<\/code>.<\/li>\n<li>Developers: New filters <code>commentaura_reaction_icon<\/code> and <code>commentaura_reaction_set_for_post<\/code>, and the <code>commentaura_reaction_settings_rendered<\/code> action for adding fields to the Reactions settings.<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<p>Opens CommentAura to add-ons, and fixes one way a vote could count twice.<\/p>\n\n<ul>\n<li>Fixed: A visitor who votes as a guest and then logs in now holds one vote, not two.<\/li>\n<li>Improved: The plugin's homepage link now points to waafaa.com\/plugin\/commentaura\/.<\/li>\n<li>Developers: New <code>commentaura_loaded<\/code> action. Add-ons receive the objects that own CommentAura's callbacks, so they can replace one with <code>remove_action()<\/code>.<\/li>\n<li>Developers: New actions <code>commentaura_vote_cast<\/code>, <code>commentaura_reaction_set<\/code>, <code>commentaura_subscription_confirmed<\/code> and <code>commentaura_subscription_removed<\/code>. None of them passes who acted.<\/li>\n<li>Developers: New filter <code>commentaura_comment_action_types<\/code> adds links to every comment's action row, and <code>commentaura_thread_args<\/code> sets page size, sort order and whether held comments are shown.<\/li>\n<li>Developers: Add-ons can queue their own background jobs with the <code>commentaura_enqueue_job<\/code> action.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<p>Released 16 September 2026. The first public release.<\/p>\n\n<ul>\n<li>New: Threaded comments for classic and block themes, with sorting, permalinks and pagination.<\/li>\n<li>New: Guest commenting that works on fully cached pages.<\/li>\n<li>New: Comment editing, with every earlier version kept for moderators.<\/li>\n<li>New: Voting and reactions, with duplicates blocked by the database.<\/li>\n<li>New: Pinned comments and per-post closing.<\/li>\n<li>New: Reply notifications and subscriptions, with double opt-in and one-click unsubscribe.<\/li>\n<li>New: Disqus importer, and migration of subscribers and votes from wpDiscuz, Jetpack Comments and Subscribe to Comments Reloaded. Every import runs as a dry run first.<\/li>\n<li>New: Export of every comment as JSON.<\/li>\n<li>New: Spam baseline (honeypot and timing check, no CAPTCHA) and rate limiting that does not block shared networks.<\/li>\n<li>New: GDPR personal-data export and erasure, and a clean uninstall that never touches your comments.<\/li>\n<li>New: REST API under commentaura\/v1, hooks, and templates you can override in your theme.<\/li>\n<li>New: A CommentAura admin menu with Dashboard, Settings and Import \/ Export screens.<\/li>\n<li>New: Everything works with JavaScript switched off, and nothing is sent to any third party.<\/li>\n<\/ul>","raw_excerpt":"A modern discussion layer for WordPress. Your comments stay native WordPress comments \u2014 always.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/360902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=360902"}],"author":[{"embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ibrahimriaz"}],"wp:attachment":[{"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=360902"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=360902"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=360902"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=360902"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=360902"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/kab.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=360902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}