Init Recent Comments – Templated, Modern, Minimal
Init Recent Comments is a developer-friendly plugin that lets you display the latest comments anywhere via a simple shortcode. It uses clean HTML, minimal CSS, and fully customizable templates.
No widgets, no bloated options. Just lightweight, extendable code — made for real sites, with native Block Editor support and Abilities API integration for the next generation of automation tools.
Key design goals:
- Native Block Editor blocks, one per shortcode, with live preview
- Abilities API support (WordPress 6.9+) for AI agents and automation tools
- Templated rendering with override support from themes
- Clean CSS you can disable or replace
- REST-ready architecture (future-proof)
- No jQuery, no nonsense
Perfect for blogs, news sites, or anyone who wants a better way to show active discussions.
This plugin is part of the Init Plugin Suite — a collection of minimalist, fast, and developer-focused tools for WordPress.
GitHub repository: https://github.com/brokensmile2103/init-recent-comments
Features
- Block Editor (Gutenberg) blocks: Recent Comments, Recent Reviews, User Recent Comments, User Recent Reviews — each with a live server-side preview in the editor
- Abilities API (WordPress 6.9+): all 4 shortcodes' data exposed as discoverable, executable abilities via
wp_get_abilities()and thewp-abilities/v1REST namespace - Simple shortcode:
[init_plugin_suite_recent_comments](legacy alias:[init_recent_comments]) - Shortcode for displaying recent reviews:
[init_plugin_suite_recent_reviews](legacy alias:[init_recent_reviews]) - Shortcode for displaying recent comments of a specific user:
[init_plugin_suite_user_recent_comments](legacy alias:[init_user_recent_comments]) - Shortcode for displaying recent reviews of a specific user:
[init_plugin_suite_user_recent_reviews](legacy alias:[init_user_recent_reviews]) - Template-based rendering (
comment-item.php,wrapper.php) - CSS can be disabled to use your theme's design
- No widgets, no jQuery, no frontend bloat
- Developer-ready: extend with filters, REST, and lazy loading (planned)
- Translation-ready (
.potincluded)
Block Editor (Gutenberg)
Four dynamic blocks are available under their own Init Recent Comments category in the block inserter — no shortcodes needed if you prefer working entirely in the editor:
- Recent Comments — equivalent to
[init_plugin_suite_recent_comments] - Recent Reviews — equivalent to
[init_plugin_suite_recent_reviews] - User Recent Comments — equivalent to
[init_plugin_suite_user_recent_comments] - User Recent Reviews — equivalent to
[init_plugin_suite_user_recent_reviews]
Each block shares the exact same rendering code as its shortcode, so switching between the Block Editor and shortcodes never changes the output. Block settings map directly to shortcode attributes, and a live preview is shown right in the editor as you configure it.
Abilities API (WordPress 6.9+)
On WordPress 6.9 and above, Init Recent Comments registers four read-only abilities under the init-recent-comments category — get-recent-comments, get-recent-reviews, get-user-recent-comments, and get-user-recent-reviews — mirroring the plugin's four shortcodes exactly. This plugin has no write actions at all (it's a pure display plugin), so all of its functionality is safely exposed. These abilities are discoverable and executable via PHP (wp_get_abilities()), and — for sites that opt in — the wp-abilities/v1 REST namespace. This integration is fully optional: on WordPress versions older than 6.9, it silently does nothing and the rest of the plugin is unaffected.
Usage
Prefer working in the Block Editor? Each shortcode below has an equivalent block — see the "Block Editor (Gutenberg)" section above.
Use the shortcode anywhere:
[init_plugin_suite_recent_comments number="5" maxheight="400px"]
Recent reviews:
[init_plugin_suite_recent_reviews number="5"]
Recent comments of a specific user:
[init_plugin_suite_user_recent_comments user_id="123"]
Recent reviews of a specific user:
[init_plugin_suite_user_recent_reviews user_id="123"]
The legacy tags [init_recent_comments], [init_recent_reviews], [init_user_recent_comments], and [init_user_recent_reviews] still work exactly the same way, for backward compatibility with existing content.
Attributes:
number– Total items to show (default: 5)maxheight– Optional max height with scroll and hidden scrollbar (example:300px)paged– Optional paginationtheme– Light or dark (example:theme="dark")- For user shortcodes:
user_id,user_login, oruser_emailcan be used to target the user
To override templates, create the folder in your theme:
your-theme/
└── init-recent-comments/
├── wrapper.php
├── review-wrapper.php
├── comment-item.php
└── review-item.php<h3>Filters for Developers</h3>
This plugin provides multiple filters to help developers customize caching behavior and performance for recent comments, reviews, and total comment count queries.
By default, comment/review queries are NOT cached (TTL = 0) so newly posted comments always show up immediately — this is intentional, since most sites using this plugin expect real-time freshness. If your site has heavy traffic and you're fine with a short delay before new comments appear, you can enable caching yourself using the filters below (a value like 60 for 60 seconds is a reasonable starting point). Total comment count queries default to a 5-minute TTL instead, since counts are less time-sensitive.
init_plugin_suite_recent_comments_ttl
Control the cache TTL (in seconds) for recent comments.
Applies to: Recent Comments Query
Params: int $ttl
init_plugin_suite_recent_comments_query_args
Allows developers to modify or extend the WP_Comment query arguments before the query runs.
Applies to: Recent Comments Query
Params: array $args
init_plugin_suite_recent_reviews_ttl
Control the cache TTL (in seconds) for recent reviews.
Applies to: Recent Reviews Query
Params: int $ttl
init_plugin_suite_user_recent_comments_ttl
Control cache TTL (in seconds) for recent comments by a specific user.
Applies to: [init_user_recent_comments]
Params: int $ttl, array $args
init_plugin_suite_user_recent_reviews_ttl
Control cache TTL (in seconds) for recent reviews by a specific user.
Applies to: [init_user_recent_reviews]
Params: int $ttl, array $args
init_plugin_suite_total_comments_ttl
Control the cache TTL (in seconds) for total approved comment counts by post type.
Applies to: Total Comments Query
Params: int $ttl, array $post_types
init_plugin_suite_total_by_posts_ttl
Control the cache TTL (in seconds) for total approved comment counts across multiple post IDs.
Applies to: Total by Post IDs Query
Params: int $ttl, array $post_ids
License
This plugin is licensed under the GPLv2 or later. You are free to use, modify, and distribute it under the same license.
