=== Init Recent Comments – Templated, Modern, Minimal ===
Contributors: brokensmile.2103
Tags: comments, recent comments, widget, shortcode, template
Requires at least: 5.5  
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Display recent comments with customizable templates and clean CSS. Lightweight, flexible, and built for modern WordPress sites.

== Description ==

**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.

Key design goals:

- 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](https://en.inithtml.com/init-plugin-suite-minimalist-powerful-and-free-wordpress-plugins/) — a collection of minimalist, fast, and developer-focused tools for WordPress.

GitHub repository: [https://github.com/brokensmile2103/init-recent-comments](https://github.com/brokensmile2103/init-recent-comments)

== Features ==

- Simple shortcode: `[init_recent_comments]`
- Shortcode for displaying recent reviews: `[init_recent_reviews]`
- Shortcode for displaying recent comments of a specific user: `[init_user_recent_comments]`
- Shortcode for displaying recent reviews of a specific user: `[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 (`.pot` included)

== Usage ==

Use the shortcode anywhere:

`[init_recent_comments number="5" maxheight="400px"]`

Recent reviews:

`[init_recent_reviews number="5"]`

Recent comments of a specific user:

`[init_user_recent_comments user_id="123"]`

Recent reviews of a specific user:

`[init_user_recent_reviews user_id="123"]`

Attributes:

- `number` – Total items to show (default: 5)
- `maxheight` – Optional max height with scroll and hidden scrollbar (example: `300px`)
- `paged` – Optional pagination
- `theme` – Light or dark (example: `theme="dark"`)
- For user shortcodes: `user_id`, `user_login`, or `user_email` can 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

== Filters for Developers ==

This plugin provides multiple filters to help developers customize caching behavior and performance for recent comments, reviews, and total comment count queries.

`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`

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/`
2. Activate via **Plugins → Init Recent Comments**
3. Use the shortcode `[init_recent_comments]` in any page or widget
4. Optional: Visit **Settings → Init Recent Comments** to disable built-in CSS

== Screenshots ==

1. Settings page with CSS toggle

== Frequently Asked Questions ==

= Can I disable the plugin’s CSS? =  
Yes! Go to **Settings → Init Recent Comments** and check the box to disable built-in styling.

= Can I customize the comment HTML? =  
Absolutely. Copy `templates/comment-item.php` and `templates/wrapper.php` to your theme to override the output.

= Will this plugin slow down my site? =  
No. It uses `get_comments()` with sane defaults, no extra queries, no JavaScript.

== Changelog ==

= 1.4 – November 5, 2025 =
- Introduced new user-specific shortcodes:
  - `[init_plugin_suite_user_recent_comments]` — display recent comments made by a specific user
  - `[init_plugin_suite_user_recent_reviews]` — display recent reviews made by a specific user
  - Backward-compat maintained: `[init_user_recent_comments]` and `[init_user_recent_reviews]`
- Both shortcodes reuse existing template system (wrapper.php / review-wrapper.php), ensuring UI consistency
- Fully supports pagination, theme mode, max height, and query argument overriding through filters
- Added new helpers for fetching user data:
  - `init_plugin_suite_recent_comments_get_user_comments()`
  - `init_plugin_suite_recent_comments_get_user_reviews()`
- Implemented separate cache groups for user comments & user reviews
  - TTL fully customizable via filters (`init_plugin_suite_user_recent_comments_ttl`, `init_plugin_suite_user_recent_reviews_ttl`)
- Updated review item template:
  - Display reviewer name and avatar resolved from `user_id` instead of relying on non-existing `author_name`
  - Fallback support for anonymous reviewers
- Internal improvements and cleanup for code reliability and maintainability

= 1.3 – November 4, 2025 =
- Added new filter `init_plugin_suite_recent_comments_query_args` allows developers to modify or extend the comment query args before running `get_comments()`
- Improved recent comments retrieval function:
  - Supports overriding query parameters via filter (e.g., filter by `post_type`, change `number`, include `meta_query`, etc.)
  - Maintains full backward compatibility
- UI update for Reply-to context:
  - Recent comment items now display "Replying to {Author}" when the comment has a parent
  - Added minimal CSS styling (non-intrusive, inherits container background)
- Codebase refinements:
  - Minor internal cleanups for readability and maintainability
  - Consistent filter naming across features to match the plugin's prefix standard

= 1.2 – October 12, 2025 =
- Enhanced caching flexibility for existing functions:
  - Added TTL filter support to init_plugin_suite_recent_comments_get_comments()
  - Added TTL filter support to init_plugin_suite_recent_comments_get_reviews()
  - Added TTL filter support to init_plugin_suite_recent_comments_get_total_comments()
- Introduced new helper function init_plugin_suite_recent_comments_get_total_by_posts() for counting total approved comments across multiple post IDs
- Separated cache group for comment totals (`init_comment_totals`) to improve cache isolation and performance
- Developers can now customize cache durations via filters
- Default TTL values remain unchanged (0 for comments/reviews, 5 minutes for totals)
- Minor internal optimizations for stability and consistency

= 1.1 – October 1, 2025 =  
- Added new shortcode `[init_recent_reviews]` for displaying recent reviews  
- Introduced prefixed shortcodes `[init_plugin_suite_recent_comments]` and `[init_plugin_suite_recent_reviews]` for better naming consistency  
- Maintained backward compatibility: old shortcodes `[init_recent_comments]` and `[init_recent_reviews]` still work  
- Added template override support for review wrapper (`init-recent-comments/review-wrapper.php`)  
- Unified CSS handling and options across both comments and reviews shortcodes  

= 1.0 – June 16, 2025 =  
- Initial release  
- Static shortcode `[init_recent_comments]`  
- Basic settings page to toggle CSS  
- Template override support  
- Clean CSS with disable option

== License ==

This plugin is licensed under the GPLv2 or later.  
You are free to use, modify, and distribute it under the same license.
