Skip page reloads and separate error screens when posting comments. Ajaxify Comments hooks into your native WordPress comment system and allows comment posting without a page reload. Lazy loading is also supported, which can help speed up your page load time.
Ajaxify Comments hooks into your theme and improves the usability of the comment form by validating and adding comments without the need of page reloads. Users can remain on the page and interact with new comments as they’re posted. This plugin also supports lazy loading of comments, which can help speed up your page load time.
When submitting the comment form, WordPress by default reloads the entire page. This can be a disorienting experience for the user. In the case of errors in the comment (invalid email, duplicate comment, empty comment), these often require a separate error screen and the user has to use the back button to edit their comment. This can be a frustrating experience for the user. Adding to that, comments can be resource intensive, and can slow down your page load time.
With Ajaxify Comments, comments are posted without a page reload. If there are errors, the error message is shown immediately, so the user can correct their comment.
Ajaxify Comments also comes with lazy loading of the comments section. For a page with a lot of comments, this can speed things up considerably. You can load comments when the DOM is ready or when the comment section is scrolled into view.
Moreover this plugin includes an option to automatically refresh the comments on the current page while the user stays on your page without requiring a page reload. This can be helpful in busy comment sections where reply response time is important.
Requirements and Compatibility
Please use the native WordPress comment system with Ajaxify Comments.
The plugin has integrations with:
- Confetti – Show confetti when a comment is posted.
- Comment Edit Core – Allow users to edit their comments.
The following themes are supported out of the box:
- Twenty Ten – Twenty Twenty Three
Since the plugin hooks into the theme on client-side to intercept the comment form submit process, and to add new comments without reloading the page, the plugin needs to access the DOM nodes using jQuery selectors. The plugin comes with default values for these selectors that were successfully tested with WordPress’ default themes “Twenty Ten”, “Twenty Eleven”, “Twenty Twelve”, “Twenty Thirteen”, “Twenty Fourteen”, “Twenty Fifteen”, “Twenty Sixteen”. If required, the selectors can be customized to match your theme in the plugin’s settings.
Ajaxify Comments is community supported. If you would like to add or change anything about the plugin, please consider assisting with the development on GitHub.
- Post comments without a page reload.
- Show error messages without a page reload.
- Lazy load comments.
- Automatically refresh comments.
- Comment form validation.
- Support for pages with multiple comment forms.
- Support for threaded and moderated comments.
- Compatible with most spam plugins.
- Menu Helper to help you find the right selectors for your theme.
- Appearance preview to see how the plugin will look on your site.
- Simulate Ajaxify Comments enabled or disabled for testing and to compare the difference.
- Translate and customize the default WordPress comment messages.
Please use the support forum to ask questions or to report issues.
Most questions can be resolved by checking out our docs site. https://docs.dlxplugins.com/v/ajaxify-comments – the Search is AI, so it should be able to find what you’re looking for.
This plugin was initially developed by Jan Jonas starting in 2012. Company weweave maintained the plugin from 2014-2022.
See: Plugin Installation.
If you have activated the plugin and are just getting started, please see our Getting Started guide.
Contributors & Developers
“Ajaxify Comments – Lazy Load and No Reload Comments” is open source software. The following people have contributed to this plugin.Contributors
Interested in development?
- Released 2023-09-30
gettextcall only on comment posting, improving performance.
- Resolved improper
- New filter for changing options before they are output as JSON.
- Released 2023-09-28
- Refactoring lazy loading. It should be much more reliable now. It has been tested with Astra, Twenty Twenty-Three, and Genesis themes.
- Updating Menu Helper to simulate lazy loading on or off.
- Released 2023-09-27
- Lazy loading was referencing the wrong variable. This has been fixed.
- Released 2023-09-24
- Renamed WP Ajaxify Comments to Ajaxify Comments in the admin. Updated branding.
- Completely refreshed admin interface. The admin is now organized into tabs with quick saving and reset options.
- Appearance tab allows for a real-time preview of the plugin’s appearance.
- Appearance tab is a lot more user friendly, allowing for easy customization of the plugin’s appearance.
- Added Support tab with helpful links to documentation and support.
- Removed admin notice on plugins screen.
- Replaced admin notice with contextual plugin row notice. This will display whenever debug mode is on, or if the plugin is disabled.
- Added first-time-installation notice for new users who are new to setting up the plugin.
- Added synthetic callback events for the available callbacks. This allows developers to hook into the plugin’s events without having to modify the plugin’s code.
- Callbacks have a slightly more secure implementation and execution.
- Added a tool called Selector Helper, which will help users find the right selectors for their theme.
- Please read the announcement post for more information.
- Released 2023-08-30
- Ensuring compatibility with WordPress 6.3.
- Fixed HTML5 validation warning for script tag
- Updated default value for “Comments container selector” to work with default theme “Twenty Twenty” without breaking compatibility to older (default) themes
- Added compatibility to older WordPress versions (< 5.2.0) and to WordPress 5.6
- Added compatibility to latest WordPress versions >= 5.5.0
- Updated Waypoints library to 4.0.1
- Updated jQuery blockUI plugin to 2.70.0
- Updated Idle Timer to 1.1.1
- Updated jsUri to 1.3.1
- Preserve focus element when reloading comments
- Fixed deprecated error in PHP 7.4
- Added compatibility to latest WordPress versions
- Removed dependency to PHP session
- Fixed “Undefined variable: wpac_options”
- Prevent the comment form from being submitted multiple times in parallel
- Fixed PHP notice “Undefined index: pagenow” (thanks to ravipatel)
- Added (expert) option “Enable by query”
- Added request parameters “WPACAll”, “WPACSkip” and” WPACTake” to query comments
- Added (expert) option “Disable cache”
- Use GET request when updating comments
- Fixed link to settings page in admin frontend
- Fixed compatibility to WordPress 4.1
- Changed plugin name from “WP-Ajaxify-Comments” to “WP Ajaxify Comments”
- Changed plugin owner to weweave an added professional support
- Added (expert) option “Base URL” to support reverse proxy configuration
- Fixed page title update for titles containing UTF-8 characters
- Typo fix in default localization
- Loading comments now updates page title (thanks to Jincheng Shan)
- OnBeforeSubmitComment callback is now called before submitUrl is extracted
- Updated localization for zh-CN (thanks to Jincheng Shan)
- Added parameter commentUrl to callbacks OnBeforeUpdateComments and OnAfterUpdateComments
- Changed order of links in plugin overview
- Make sure WPAC._Options is always initialized
- Bugfix for comment paging links
- Added (expert) option “Place scripts in footer”
- Added option “Comment links selector” to prevent (complete) page loads for comment links on pages if “Break comments into pages […]” is enabled
- Bugfix for “Users must be registered and logged in to comment”
- Fixed PHP Notice for PHP < 5.4.0
- Minor optimizations
- Added (expert) option “Optimize AJAX response” to save bandwidth
- Added option “Disable scroll to anchor”
- Fixed paging support and async comment loading for pages where comments are closed
- Fixed support for URLs with comments anchor if async comment loading is enabled
- Added option “Post container” to support for multiple comment forms per page
- Added option “Comment pages URL regex” to support none default WordPress comment pages
- Added parameter newDom to callbacks OnBeforeUpdateComments and OnAfterUpdateComments
- Added option to define when to load comments asynchronously with secondary AJAX request
- Fixed “Undefined index” PHP notice (thanks to fergomez)
- Fixed compatibility to wpMandrill (thanks to paddywagon)
- “OnAfterUpdateComments” callback is now called after form data has been reset
- Added options to customize (default) WordPress messages
- Disabled (auto) scrolling when comments are updated by “Auto update idle time”
- Fixed compatibility to jQuery “no conflict mode”
- Bugfix for cross-domain scripting detection
- Added option “Auto update idle time” to automatically update comments if user is “idle”
- Updated jQuery blockUI to 2.64
- Added option to disable URL updating
- Fixed some PHP strict warnings
- Fixed compatibility to PHP < 5.4.0
- Fixed compatibility to jQuery “no conflict mode”
- Added options to customize texts
- WPAC.RefreshComments() and WPAC.LoadComments() now accept option object (and added option “showLoadingInfo” to suppress loading overlay)
- Updated jQuery blockUI to 2.61
- Added jsuri 1.1.1 to avoid query strings with duplicated WPAC fallback parameters
- Comment paging now updates browser URL
- Added localization for da-DK (thanks to Bjarne Maschoreck)
- Bugfix for themes where comment form is not nested in comment container
- Bugfix for clearing all settings (thanks to HarroH)
- Ajaxified comment paging
- Improved debug support for cross-domain scripting problems
- Hotfix for environments where PHP is not installed as an Apache module
- Bug-fix: Options are no longer saved if validation fails
- Updated localization for de-DE
- Added option to load comments asynchronously with secondary AJAX request
- Added localization for hu-HU (thanks to Patrik Bagi)
- Added option to customize the overlay’s width
- Added option to customize the overlay’s padding
- Added localization for he-LI (thanks to Siman-Tov Yechiel (www.wpstore.co.il))
- Updated jQuery blockUI to 2.57
- Optimized SQL queries (thanks to Geleosan)
- Added validation for “scrollSpeed” option
- Fixed debug alert message in IE 9
- Added localization for sk-SK (thanks to Branco, Slovak translation (WebHostingGeeks.com))
- Added option to customize the font size
- Added i18n support for admin frontend
- Added localization for ar (thanks to sha3ira)
- Fixed some PHP warnings (thanks to petersb)
- Fixed HTTPS check for ISAPI under IIS
- Added support for non-standard HTTP port
- Fixed handling of unexpected/unsupported server responses
- Added localization for ru-RU and uk (thanks to Валерий Сиволап)
- jQuery 1.7+ compatibility: Use on() or delegate() if available instead of deprecated live() (thanks to tzdk)
- Added localization for tr-TR (thanks to Erdinç Aladağ)
- Added localization for pt-BR (thanks to Leandro Martins Guimarães)
- Added localization for fa-IR (thanks to rezach4)
- Updated localization for zh-CN (thanks to Liberty Pi)
- Updated jQuery blockUI to 2.42 (thanks to Mexalim)
- Success overlay now supports comments that are awaiting moderation
- Add “?” when commentUrl has no query string to reload page in case of partial page update fails
- More detailed debug messages and debug support for Internet Explorer 9
- Added localization for ca (thanks to guzmanfg)
- Added localization for nl-NL (thanks to Daniël Tulp)
- Success and error overlays now show default cursor instead of loading cursor
- Fixed problems for translations containing double quotes
- Cancel AJAX request if cross-domain scripting is detected
- Added options to customize the look and feel
- Added localization for vi-VN (thanks to Nguyễn Hà Duy Phương)
- Added localization for es-ES (thanks to guzmanfg)
- Updated localization for de-DE
- Added localization for pl-PL (thanks to Jacek Tomaszewski)
- Bugfix for Internet Explorer
- Added localization for fr-FR (thanks to saymonz)
- Added localization for zh-CN (thanks to Liberty Pi)
- Added i18n support
- Added localization for de-DE
- Fallback mode reloads page with comment anchor
- Bug-fix for themes where comment form is nested in comments container (thanks to saymonz)
- Added Option “Error Container Selector” to customize the error message extraction
- Added compatibility with comment spam protection plugins like “NoSpamNX” (thanks to Liberty Pi)
- Removed timeout for loading overlay (thanks to saymonz)
- Fixed compatibility with setting pages of other plugins (thanks to saymonz)
- Reactivated warning and info notices on admin page “Plugins”
- Fixed updating of browser address bar
- Support for themes with threaded comments where form tag is not nested in comment container
- (Smooth) scrolling to new comment after new comment has been posted
- Update browser address bar to show comment URL after new comment has been posted
- Abort plugin initialization on pages and posts where comments are not enabled
- Info overlay when complete page reload is performed in fallback mode
- Fixed error with warning and info notices on admin page “Plugins”
- Initial release