Home / Most Popular / Completely Disable Comments
Duplicate Snippet

Embed Snippet on Your Site

Completely Disable Comments

Disable comments for all post types, in the admin and the frontend.

10.0k
Code Preview
php
<?php
add_action('admin_init', function () {
    // Redirect any user trying to access comments page
    global $pagenow;
    
    if ($pagenow === 'edit-comments.php') {
        wp_safe_redirect(admin_url());
        exit;
    }
    // Remove comments metabox from dashboard
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
    // Disable support for comments and trackbacks in post types
    foreach (get_post_types() as $post_type) {
        if (post_type_supports($post_type, 'comments')) {
            remove_post_type_support($post_type, 'comments');
            remove_post_type_support($post_type, 'trackbacks');
        }
    }
});
// Close comments on the front-end
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);
// Hide existing comments
add_filter('comments_array', '__return_empty_array', 10, 2);
// Remove comments page in menu
add_action('admin_menu', function () {
    remove_menu_page('edit-comments.php');
});
// Remove comments links from admin bar
add_action('admin_bar_menu', function () {
    remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
}, 0);

Comments

Add a Comment

  1. Thank you for providing this very useful code snippet. However, wouldn’t it make sense to extend this snippet with extra code that removes the ‘Settings Discussion Screen’ from the Settings as well? AFAIK, the Discussion Settings are only relevant for comments.

    1. Thank you for the suggestion Steven.

      Some of the options on the Discussion settings page impact more than just the comments feature.

      Completely removing the Discussion settings page could also hide configuration choices that might still be relevant for the site, even without comments enabled.

      However, If you do want to hide the Discussion settings page from the menu, you can simply add this code to your snippet:

      add_action(‘admin_menu’, function () {
      remove_submenu_page(‘options-general.php’, ‘options-discussion.php’);
      });