Commenti – Disable & Remove Comments, Stop Spam [Multi-Site Support]
Commenti – Disable & Remove Comments, Stop Spam [Multi-Site Support]
Description
Commenti lets you disable comments across your entire WordPress site with one click, or selectively remove comments on specific post types. Hide comment forms, delete existing comments in bulk, stop spam, and clean up your admin — with full multisite network support and WP-CLI commands.
Why Commenti?
WordPress’s built-in Discussion settings only scratch the surface. They let you close comments on future posts, but existing posts stay open, comment menus clutter the admin, REST API endpoints remain exposed, and pingback headers keep broadcasting. Commenti closes every door — front end, back end, feeds, APIs — while giving you fine-grained control over what stays open.
- One click vs. granular — Disable everything at once, or choose exactly which post types to affect
- Per-post overrides — Keep comments open on specific posts even when disabled globally
- Safe by default — Disabling comments never deletes anything. Deletion is a separate, intentional action
- Developer-friendly — 16+ filters, 7+ actions, 8 WP-CLI commands, and a REST API for full programmatic control
Features
- Disable All or Per Post Type — One toggle to disable comments everywhere, or select specific post types
- Per-Post Override — Enable or disable comments on individual posts via a meta box
- Show Existing Comments — Optionally keep displaying previously posted comments while blocking new ones
- Admin Cleanup — Remove the Comments menu, admin bar item, dashboard widgets, and block editor comment blocks
- REST API Blocking — Remove
/wp/v2/commentsendpoints and block comment requests - XML-RPC Blocking — Remove all comment-related XML-RPC methods
- Feed & Pingback Removal — Remove comment RSS feeds, X-Pingback headers, and pingback XML-RPC methods
- Avatar & Gravatar Control — Disable avatar display and block external Gravatar requests for privacy
- Comment Type Whitelisting — Allow specific comment types like WooCommerce order notes or WP 6.9 Notes to bypass disabling
- User Role Exclusions — Exempt specific user roles from comment restrictions
- Scheduled Disable — Automatically close comments on posts older than a set number of days via WP-Cron
- Bulk Comment Deletion — Delete comments by post type, comment type, or status with a statistics preview before you commit
- Import/Export Settings — Transfer your configuration between sites via JSON files
- Activity Log — Full audit trail of every settings change, import, and bulk deletion
- Setup Wizard — Three-step first-run wizard to configure your site in under a minute
- Multisite Support — Network activation with network-wide settings and per-subsite management
- WP-CLI Commands — 8 commands for status, settings, deletion, stats, export, import, log, and reset
- Custom REST API —
yakura-commenti/v1/endpoints for reading and updating settings programmatically
For Developers
Commenti exposes 16+ filters and 7+ actions at every decision point — override whether a post type is disabled, modify settings before save, react after bulk deletions, filter REST endpoints, and more. All hooks are prefixed with yakura_commenti_.
WP-CLI: wp yakura-commenti status|settings|delete|stats|export|import|log|reset.
REST API: GET/POST /yakura-commenti/v1/settings, GET /yakura-commenti/v1/status (requires manage_options).
Requirements
- WordPress 5.9 or later
- PHP 7.4 or later
Installation
- Upload the
yakura-commentifolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu
- Complete the setup wizard that appears on first activation, or go to Commenti in the admin sidebar to configure manually
Screenshots

Dashboard with comment statistics and quick status overview

Settings page with per-post-type comment controls

Setup wizard — configure your site in three steps

Tools page with bulk comment deletion and statistics preview

Per-post meta box for overriding global comment settings

Activity log showing an audit trail of all changes
Faq
No. Disabling comments only prevents new comments from being posted. Your existing comments remain in the database untouched. You can optionally keep displaying them on the front end by enabling the “Show Existing Comments” setting. If you do want to delete comments, use the Tools page for bulk deletion with a preview of exactly what will be removed.
Commenti replaces the default comment template with a blank one, so the “comments are closed” message should not appear. If your theme uses a custom template that hard-codes this message, you may need to edit your theme template or use a CSS rule to hide it.
Yes. Instead of disabling everywhere, select individual post types (posts, pages, custom post types) from the Post Types tab in settings. Only the selected types will have comments disabled.
Yes. Every post, page, and custom post type has a “Commenti” meta box in the editor. Set it to “Enable” to override the global setting and keep comments open on that particular post.
Yes. WooCommerce order notes use a special comment type. You can whitelist “Order Note” in the Comment Types setting so order notes continue to work normally even when comments are disabled.
Yes. Commenti blocks comment submissions at multiple levels: it closes the comment form, blocks the REST API comment endpoints, removes XML-RPC comment methods, and returns an error on direct form submissions. Spam bots cannot post comments through any channel.
Yes. When feed and pingback removal is enabled, the plugin removes the X-Pingback header, closes pings on all posts, and removes the pingback.ping and pingback.extensions.getPingbacks XML-RPC methods.
No. Commenti uses standard WordPress filters and actions. It does not modify your database schema, alter theme files, or override other plugins. If you deactivate it, everything returns to its previous state.
Yes. All changes are reversible. Toggle the settings back, deactivate the plugin, or use the per-post override to re-enable comments on individual posts. Nothing is permanently altered.
No. The plugin is lightweight and only runs the hooks it needs. There are no external API calls, no additional database tables, and no front-end JavaScript. Blocking Gravatar requests can actually improve page load times by preventing external HTTP requests.
Yes. Settings are stored in the WordPress options table and are not affected by plugin updates. You can also export your settings as a JSON backup at any time.
Yes. Network activate the plugin and use the Network Settings page to apply configuration across all sites. You can also manage settings per subsite.
Yes. The plugin removes comment-related blocks (Post Comments, Comments Query Loop) from the block editor inserter so they cannot be added to new posts.
Yes. Commenti includes 8 WP-CLI commands: wp yakura-commenti status, settings, delete, stats, export, import, log, and reset. Run wp help yakura-commenti for full documentation.
Reviews
Changelog
1.0.2
- Fixed whitelisted comment types (e.g. WP 6.9 Notes, WooCommerce order notes) being blocked by the REST API even when added to the allowed list
- Fixed REST API comment disabler ignoring per-post overrides and user role exclusions when “Disable Everywhere” is enabled
- Fixed settings page AJAX save reporting success on database write failures instead of showing an error
- Fixed network settings, setup wizard, and import handlers firing the settings_saved action even when nothing actually changed
- Added 75 integration tests covering cross-component consistency, REST API settings endpoints, template replacement edge cases, and plugin lifecycle hooks
1.0.1
- Fixed settings page unable to uncheck boolean options that default to enabled (e.g. Remove Admin Menu, REST API blocking)
- Fixed setup wizard resetting non-wizard settings to defaults when completing the wizard
- Fixed subsite admins able to overwrite network-wide settings when plugin is network-activated
- Fixed REST API settings endpoint missing capability check for network-activated installs
- Fixed REST API comment disabler blocking all post types even when only specific types are disabled
- Fixed REST API comment disabler ignoring per-post overrides and user role exclusions
- Fixed scheduled disable using local time instead of UTC for date comparison, causing timezone-dependent errors
- Fixed REST settings endpoint masking database write failures as “no changes detected”
- Fixed REST settings endpoint not applying the before_save_settings filter
- Fixed WP-CLI boolean coercion preventing integer settings from being set to 0 or 1
- Fixed WP-CLI settings command not firing settings_saved action for activity log tracking
- Fixed WP-CLI import command showing wrong syntax in class-level help docs
- Fixed WP-CLI settings command silently showing table when –set provided without –value
- Fixed comment feed links leaking in HTML head on WordPress 5.9 and 6.0 (pre-6.1 compatibility)
- Fixed comment feeds accessible via RSS 0.92 and RDF formats bypassing feed disabling
- Fixed feed disabler pings_open filter bypassing user role exclusions and per-post disable overrides
- Fixed comment type whitelist overriding spam filter decisions by returning approved instead of pending
- Fixed network activation writing default options to wrong storage (site-level instead of network-level)
1.0.0
- Added core comment disabling with site-wide and per-post-type control
- Added per-post override meta box for individual comment control
- Added option to show existing comments while blocking new ones
- Added admin cleanup: menu, admin bar, dashboard widgets, block editor blocks
- Added REST API comment endpoint blocking
- Added XML-RPC comment method blocking
- Added comment feed and pingback removal
- Added avatar disabling and Gravatar request blocking
- Added comment type whitelisting for WooCommerce order notes and WP 6.9 Notes
- Added user role exclusions from comment disabling
- Added scheduled comment disable via WP-Cron
- Added bulk comment deletion tools with statistics preview
- Added settings import and export as JSON
- Added activity log for settings changes and bulk actions
- Added three-step setup wizard
- Added multisite support with network settings
- Added 8 WP-CLI commands for full command-line management
- Added custom REST API endpoints for programmatic settings access
- Added 16+ developer filters and 7+ actions for extensibility