One Click Close Comments

Author: Scott Reilly
Version: 2.7
First released: 2009-06-12
Last update: 2020-08-03
Compatibility: WP 4.7 – 5.4.4
Download: [ zip ]

Conveniently close or open comments for a post or page with one click from the admin listing of posts.

Extended Description

From the admin listing of posts (‘Edit Posts’) and pages (‘Edit Pages’), a user can close or open comments to any posts to which they have sufficient privileges to make such changes (essentially admins and post authors for their own posts). This is done via an AJAX-powered color-coded indicator. The color-coding gives instant feedback on the current status of the post for comments: green means the post/page is open to comments, red means the post/page is closed to comments. Being AJAX-powered means that the change is submitted in the background after being clicked without requiring a page reload.

This plugin will only function for administrative users in the admin who have JavaScript enabled.

Links: Plugin Homepage | Plugin Directory Page | GitHub | Author Homepage


The plugin exposes one filter for hooking. Such code should ideally be put into a mu-plugin or site-specific plugin (which is beyond the scope of this readme to explain).

c2c_one_click_close_comments_click_char (filter)

The ‘c2c_one_click_close_comments_click_char’ hook allows you to use an alternative character, string, or markup as the plugin’s indicator in the posts listing tables. It is the character that gets color-coded to indicate if comments are open or close, and the thing to click to toggle the comment open status. You can make use of Dashicons by specifying the desired dashicon’s name (with the “dashicons-” prefix). By default this is the comments dashicon, dashicons-admin-comments.


  • $char (array): The character, string, or markup to be used for display (by default this is dashicons-admin-comments).


 * Changes the character used as the one-click link to a bullet (solid circle).
 * @param string $char The default character.
 * @return string
function custom_one_click_char( $char ) {
    return '•';
add_filter( 'c2c_one_click_close_comments_click_char', 'custom_one_click_char' );

Find out more at the plugin’s WordPress Plugin Repository page.


Click to see full-size image.

  1. A screenshot of the 'Posts' admin page with the plugin activated. The tooltip (from hovering over a green indicator) reads: "Comments are open. Click to close." Were the mouse to hover over a red indicator, the tooltip would read: "Comments are closed. Click to open."

    A screenshot of the ‘Posts’ admin page with the plugin activated. The tooltip (from hovering over a green indicator) reads: “Comments are open. Click to close.” Were the mouse to hover over a red indicator, the tooltip would read: “Comments are closed. Click to open.”


  1. Install via the built-in WordPress plugin installer. Or download and unzip inside the plugins directory for your site (typically wp-content/plugins/)
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  3. When on the ‘Edit Posts’ or ‘Edit Pages’ admin pages, click the indicators to toggle the comment status for a post, as necessary.

Frequently Asked Questions

Q. I can see the colored comment bubble indicating current commenting status, but why aren’t they clickable?
A. The commenting status link/button is only clickable is you have JavaScript enabled.

Q. What does the color-coding of the comment bubble mean?
A. Green means the post is currently open for comments; red means the post is not currently open for comments.

Q. How can I customize the color-coding used for the comment bubble?
A. You can customize the colors via CSS. .comment-state-1 indicates comments are open. .comment-state-0 indicates comments are closed.

Q. How can I customize the character used to represent commenting status?
A. By default, commenting status is represented using the comment bubble dashicon, dashicons-admin-comments. You can change this by filtering c2c_one_click_close_comments_click_char. Here’s an example — added to a theme’s functions.php file — to change it to the original bullet (solid circle) character:

add_filter( 'c2c_one_click_close_comments_click_char', function ( $a ) { return "•"; } );

Q. How can I open or close comments when editing a specific post?
A. WordPress already includes the interface for you to edit the comment status for a specific post. When editing a post, you’ll find the setting in the “Discussion” section; the checkbox is labeled “Allow Comments”.

Q. Why does the comment status indicator indicate that comments are open, when in reality comments are disabled (or vice vera)?
A. The comment status indicator only reflects the value of the “Allow Comments” setting for the post. In most cases, the indicator will accurately reflect the ability for the user to see the comment form and/or submit a comment.
However, other plugins, the theme, or custom code may affect the visitor’s ability to see the comment form when viewing a post and/or may permit or disable commenting at the time the post is shown to them despite the value of the setting. For instance, you could have another plugin installed which disables comments for a post after one year. After a year, that plugin would disable comments in its own way, but the comment status indicator for the post could reflect that comments are open since technically the post’s “Allow Comments” setting would still be enabled.

Release Log

2.7 (2020-08-02)

  • This recommended release updates its JavaScript, streamlines markup output, adds unit testing, adds a file, updates a few URLs to be HTTPS, notes compatibility through 5.4+, and other minor behind-the-scenes improvements.


  • New: Extract code for determining click character into new get_click_char()
  • New: Add unit tests
  • New: Add reset() for resetting memoized variables
  • New: Add and move existing TODO list from top of main plugin file into it (and add items to it)
  • Change: Improve output of markup
    • Remove encompassing span only shown for users authorized to toggle comment status
    • Add ‘title’ attribute to primary span to indicate current state
    • Change text to not indicate that comment staus can be toggled when user does not have that capability
  • Change: Update JavaScript
    • Change: Migrate use of deprecated .live() to .on()
    • Change: Handle removal of a previously encapsulating span
    • Change: Remove unused code
    • Change: Update code syntax
  • Change: Allow class to be defined even when loaded outside the admin
  • Change: Return ‘-1’ to Ajax requests that don’t result in the comment status being toggled
  • Change: Add $and_exit argument to toggle_comment_status() to prevent exiting in order to facilitate unit testing
  • Change: Refactor add_post_column() to be more concise
  • Change: Add inline docs for deprecated filter one-click-close-comments-click-char
  • Change: Switch to use of strict equality operator instead of simple equality operator
  • Change: Note compatibility through WP 5.4+
  • Change: Update links to to be HTTPS

2.6.1 (2019-11-24)

  • New: Add additional FAQ items
  • Change: Note compatibility through WP 5.3+
  • Change: Update copyright date (2020)

2.6 (2019-03-22)

  • New: Add support for using dashicons for the click character
  • Change: Replace the bullet character (solid circle) with comment bubble dashicon as column icon for one-click link
  • New: Add file and move all but most recent changelog entries into it
  • New: Add inline documentation for hook
  • Change: Initialize plugin on ‘plugins_loaded’ action instead of on load
  • Change: Use apply_filters_deprecated() when using the deprecated filter
  • Change: Use wp_doing_ajax() for official detection of use of AJAX
  • Change: Tweak plugin description
  • Change: Split paragraph in’s “Support” section into two
  • Change: Note compatibility through WP 5.1+
  • Change: Remove support for versions of WordPress older than 4.7
  • Change: Update copyright date (2019)
  • Change: Update License URI to be HTTPS
  • Change: Update screenshot, icon, and banner for Plugin Directory

Copyright & Disclaimer

Copyright © 2009-2021 by Scott Reilly (aka coffee2code)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Discussion / Support

Have any questions, comments, or suggestions? Please provide them via the plugin’s support forum. I’ll do my best to reply in a timely fashion and help as best I can.

Unfortunately, I cannot provide guaranteed support, nor do I provide support via any other means.

Was this plugin useful useful to you? Consider giving it a rating. If you’re inclined to give it a poor rating, please first post to the support forum to give me a chance to address or explain the situation.

4 replies on “One Click Close Comments”