{"id":227650,"date":"2025-06-04T14:47:01","date_gmt":"2025-06-04T14:47:01","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/delete-disable-comments\/"},"modified":"2026-05-24T20:29:05","modified_gmt":"2026-05-24T20:29:05","slug":"delete-disable-comments","status":"publish","type":"plugin","link":"https:\/\/ru.wordpress.org\/plugins\/delete-disable-comments\/","author":414194,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.5","stable_tag":"1.0.5","tested":"7.0","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Delete & Disable Comments","header_author":"Andreas Ostheimer","header_description":"A WordPress plugin that helps site administrators manage comments by deleting spam comments, removing all comments with backup, or disabling comments site-wide.","assets_banners_color":"0d122d","last_updated":"2026-05-24 20:29:05","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/ostheimer\/delete-disable-wp-comments","header_author_uri":"https:\/\/github.com\/ostheimer","rating":0,"author_block_rating":0,"active_installs":0,"downloads":445,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"helpstring","date":"2025-06-04 14:46:38"},"1.0.5":{"tag":"1.0.5","author":"helpstring","date":"2026-05-24 20:29:05"}},"upgrade_notice":{"1.0.5":"<p>Translation release with broad EU locale support for the admin interface.<\/p>","1.0.4":"<p>Maintenance release for Plugin Check and WordPress 7.0 compatibility metadata.<\/p>","1.0.3":"<p>Recommended if the disable-comments toggle stayed on \u201cUpdating...\u201d or large sites took too long while toggling comments off.<\/p>","1.0.2":"<p>Recommended for sites using WPML, Yoast SEO, Polylang, or any plugin that hooks into post saves.<\/p>","1.0.1":"<p>Prefix rename to <code>ddwpc_<\/code>, safer paths, and backup files moved to the uploads directory.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3547226,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3547226,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3547226,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3547226,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.5"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3546582,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3546582,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3546582,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3546582,"resolution":"4","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"Main panel with three sections: spam, delete all plus backup, disable toggle","2":"Spam delete confirmation dialog with Yes and No","3":"Delete all warning plus backup reminder","4":"Disable toggle ON plus yellow maintenance notice plus Close all comments now button"}},"plugin_section":[],"plugin_tags":[151,107,14830,14833,599],"plugin_category":[44,54,59],"plugin_contributors":[88021],"plugin_business_model":[],"class_list":["post-227650","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-comments","plugin_tags-delete-comments","plugin_tags-disable-comments","plugin_tags-spam","plugin_category-discussion-and-community","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-helpstring","plugin_committers-helpstring"],"banners":{"banner":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/banner-772x250.png?rev=3547226","banner_2x":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/banner-1544x500.png?rev=3547226","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/icon-128x128.png?rev=3547226","icon_2x":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/icon-256x256.png?rev=3547226","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/screenshot-1.png?rev=3546582","caption":"Main panel with three sections: spam, delete all plus backup, disable toggle"},{"src":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/screenshot-2.png?rev=3546582","caption":"Spam delete confirmation dialog with Yes and No"},{"src":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/screenshot-3.png?rev=3546582","caption":"Delete all warning plus backup reminder"},{"src":"https:\/\/ps.w.org\/delete-disable-comments\/assets\/screenshot-4.png?rev=3546582","caption":"Disable toggle ON plus yellow maintenance notice plus Close all comments now button"}],"raw_content":"<!--section=description-->\n<p><strong>Delete &amp; Disable Comments<\/strong> gives WordPress administrators a focused screen for comment cleanup and comment shutdown tasks. Open it under <strong>Tools \u2192 Delete &amp; Disable Comments<\/strong>.<\/p>\n\n<p>Many older sites collect spam comments, unused discussion threads, or imported comment data that no longer belongs on the site. This plugin keeps those maintenance actions in one place without asking you to edit the database manually.<\/p>\n\n<h4>Why use it?<\/h4>\n\n<ul>\n<li>Delete all comments marked as spam after confirmation.<\/li>\n<li>Delete all comments after confirmation.<\/li>\n<li>Download a CSV backup before deleting all comments.<\/li>\n<li>Disable comments site-wide with a single toggle.<\/li>\n<li>Close comments and pings on existing posts when disable mode is active.<\/li>\n<li>Use a standard WordPress admin screen available only to administrators.<\/li>\n<\/ul>\n\n<h4>Common use cases<\/h4>\n\n<ul>\n<li>Remove accumulated spam comments from a site.<\/li>\n<li>Prepare a site that no longer accepts discussion.<\/li>\n<li>Clean comments before a redesign, migration, or client handover.<\/li>\n<li>Download a CSV copy of comment data before permanent deletion.<\/li>\n<li>Close open comment status on existing posts without triggering <code>save_post<\/code> hooks.<\/li>\n<\/ul>\n\n<h4>What Disable Comments does<\/h4>\n\n<p>The <strong>Disable Comments<\/strong> toggle changes the site's comment behavior. When enabled, it sets WordPress defaults for new content to closed, prevents new comment and ping submissions, hides front-end comment output, removes comment-related UI, blocks comment REST endpoints, unregisters comment-related blocks, and removes the recent comments widget.<\/p>\n\n<p>It does <strong>not<\/strong> delete existing comments. It also does not run a scheduled cleanup. If existing posts still have open comment or ping status, the admin screen shows a maintenance notice with a <strong>Close all comments now<\/strong> button. That button performs one direct SQL update to close those fields and avoids per-post <code>save_post<\/code> hooks, which is useful for sites using WPML, Yoast SEO, Polylang, or other plugins that listen to post updates.<\/p>\n\n<h4>Translations<\/h4>\n\n<p>The plugin ships with gettext translation files for broad EU language support, including German and additional EU locales. WordPress loads the matching <code>.mo<\/code> file automatically based on the site language. Text domain: <code>delete-disable-comments<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/delete-disable-comments<\/code>, or install the ZIP via <strong>Plugins \u2192 Add New \u2192 Upload Plugin<\/strong>.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Open <strong>Tools \u2192 Delete &amp; Disable Comments<\/strong> to delete spam comments, download a CSV backup, delete all comments, or disable comments site-wide.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20back%20up%20comments%20before%20deleting%20them%3F\"><h3>Can I back up comments before deleting them?<\/h3><\/dt>\n<dd><p>Yes. Use <strong>Download Backup<\/strong> before <strong>Delete All Comments<\/strong>. The backup is a CSV file generated from existing comments and offered as a browser download.<\/p><\/dd>\n<dt id=\"can%20the%20plugin%20restore%20deleted%20comments%20from%20a%20csv%20backup%3F\"><h3>Can the plugin restore deleted comments from a CSV backup?<\/h3><\/dt>\n<dd><p>No. The CSV backup is for safekeeping or manual import workflows. The plugin does not include a restore tool.<\/p><\/dd>\n<dt id=\"does%20disabling%20comments%20delete%20existing%20comments%3F\"><h3>Does disabling comments delete existing comments?<\/h3><\/dt>\n<dd><p>No. The disable toggle prevents and hides comment functionality, but existing comment records stay in the database until you explicitly delete them.<\/p><\/dd>\n<dt id=\"what%20does%20%E2%80%9Cclose%20all%20comments%20now%E2%80%9D%20do%3F\"><h3>What does \u201cClose all comments now\u201d do?<\/h3><\/dt>\n<dd><p>When disable mode is active, some existing posts may still have <code>comment_status<\/code> or <code>ping_status<\/code> set to open. The button closes those fields in one SQL update.<\/p><\/dd>\n<dt id=\"is%20the%20close%20action%20safe%20with%20wpml%2C%20yoast%20seo%2C%20or%20polylang%3F\"><h3>Is the close action safe with WPML, Yoast SEO, or Polylang?<\/h3><\/dt>\n<dd><p>The close action does not call <code>wp_update_post()<\/code> for every post and does not trigger <code>save_post<\/code> hooks. That keeps it suitable for sites using WPML, Yoast SEO, Polylang, and other plugins that react to post saves.<\/p><\/dd>\n<dt id=\"who%20can%20use%20the%20plugin%20screen%3F\"><h3>Who can use the plugin screen?<\/h3><\/dt>\n<dd><p>Only users with the <code>manage_options<\/code> capability, usually administrators. AJAX actions are protected with WordPress nonces and capability checks.<\/p><\/dd>\n<dt id=\"does%20it%20support%20wordpress%20multisite%3F\"><h3>Does it support WordPress multisite?<\/h3><\/dt>\n<dd><p>No. This plugin is designed for single-site WordPress installations.<\/p><\/dd>\n<dt id=\"does%20it%20run%20scheduled%20cleanup%20jobs%3F\"><h3>Does it run scheduled cleanup jobs?<\/h3><\/dt>\n<dd><p>No. Cleanup actions run only when an administrator clicks the relevant button.<\/p><\/dd>\n<dt id=\"where%20are%20csv%20backup%20files%20stored%3F\"><h3>Where are CSV backup files stored?<\/h3><\/dt>\n<dd><p>Backups are written under <code>wp-content\/uploads\/delete-disable-comments\/<\/code> and are also offered as a direct browser download.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Added complete EU locale translation files and compiled <code>.mo<\/code> files for the admin UI.<\/li>\n<li>Kept complete German translations (<code>de_AT<\/code>, <code>de_DE<\/code>) for admin UI, AJAX messages, and maintenance notices.<\/li>\n<li>Updated the translation template (<code>.pot<\/code>) and fixed the hardcoded \u201cError loading status\u201d JavaScript message.<\/li>\n<\/ul>\n\n<h4>1.0.4<\/h4>\n\n<ul>\n<li>Plugin Check compliance: <code>Tested up to<\/code> 7.0, sanitized toggle AJAX input, documented intentional bulk SQL queries.<\/li>\n<li>Version bump for WordPress.org submission readiness.<\/li>\n<\/ul>\n\n<h4>1.0.3<\/h4>\n\n<ul>\n<li>Fixed the disable-comments toggle so it no longer runs a synchronous bulk update on <code>wp_posts<\/code> during AJAX.<\/li>\n<li>Bulk-closing existing posts is now performed only through <strong>Close all comments now<\/strong> or on plugin activation when disable mode is already enabled.<\/li>\n<li>Hardened toggle AJAX input handling and admin JavaScript error recovery.<\/li>\n<li>Removed Cypress E2E tests from the repository; PHP smoke tests remain under <code>tests\/php\/<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed <code>ddwpc_init()<\/code> so it no longer iterates over every post on every page request.<\/li>\n<li>Bulk close-comments now runs only when the administrator clicks <strong>Close all comments now<\/strong>.<\/li>\n<li>Bulk close operation uses a single <code>$wpdb<\/code> update without triggering <code>save_post<\/code>, <code>transition_post_status<\/code>, or <code>wp_after_insert_post<\/code>.<\/li>\n<li>Settings screen shows the count of posts with open comments or pings and provides a one-click close button.<\/li>\n<li>Added helpers: <code>ddwpc_is_disable_comments_enabled()<\/code>, <code>ddwpc_apply_disable_comments_defaults()<\/code>, <code>ddwpc_close_all_post_comments_in_db()<\/code>, and <code>ddwpc_count_posts_with_open_comments()<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Renamed plugin prefixes from <code>ddc_<\/code> to <code>ddwpc_<\/code> across PHP and JavaScript.<\/li>\n<li>Removed the manual <code>load_plugin_textdomain()<\/code> call because WordPress 4.6+ auto-loads plugin translations.<\/li>\n<li>Removed direct core file loads.<\/li>\n<li>Moved CSV backups under <code>wp-content\/uploads\/delete-disable-comments\/<\/code>.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release with spam deletion, delete-all with backup, and site-wide comment disable.<\/li>\n<\/ul>","raw_excerpt":"Clean up spam, delete all comments with CSV backup, or disable comments site-wide from one admin screen.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/227650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=227650"}],"author":[{"embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/helpstring"}],"wp:attachment":[{"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=227650"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=227650"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=227650"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=227650"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=227650"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ru.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=227650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}