Is there ANY way to remove comments function and section totally?

I don’t want any comment querys to run. I don’t wont anything about comments to be shown in wordpress admin area.

Is this possible in any way?

Read More

EDIT: Remove all links to the comments from admin bar, and all of the backend section.

Related posts

Leave a Reply

6 comments

  1. Here is a list of all of the above answers and a removal of the admin bar link. Just add it to your themes function file or make it a plugin. I will mark this as a community wiki as everyone’s answer is right just no one added it all together.

    <?php
    // Removes from admin menu
    add_action( 'admin_menu', 'my_remove_admin_menus' );
    function my_remove_admin_menus() {
        remove_menu_page( 'edit-comments.php' );
    }
    // Removes from post and pages
    add_action('init', 'remove_comment_support', 100);
    
    function remove_comment_support() {
        remove_post_type_support( 'post', 'comments' );
        remove_post_type_support( 'page', 'comments' );
    }
    // Removes from admin bar
    function mytheme_admin_bar_render() {
        global $wp_admin_bar;
        $wp_admin_bar->remove_menu('comments');
    }
    add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
    ?>
    
  2. To remove the Comments menu:

    add_action( 'admin_init', 'my_remove_admin_menus' );
    function my_remove_admin_menus() {
        remove_menu_page( 'edit-comments.php' );
    }
    
  3. This should remove support for comments on your site:

    add_action('admin_menu', 'remove_comment_support');
    
    function remove_comment_support() {
        remove_post_type_support( 'post', 'comments' );
        remove_post_type_support( 'page', 'comments' );
    }
    

    I don’t know if it will hide every mention of comments in the admin section, though. The “Right Now” box on the dashboard is mostly hard-coded, so you’d have to hide that box or do some hackery to filter out the line about “Comments”. But it should remove the “comments” text everywhere else that I can think of.

  4. // Disable support for comments and trackbacks in post types
    function df_disable_comments_post_types_support() {
        $post_types = get_post_types();
        foreach ($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');
            }
        }
    }
    add_action('admin_init', 'df_disable_comments_post_types_support');
    
    // Close comments on the front-end
    function df_disable_comments_status() {
        return false;
    }
    add_filter('comments_open', 'df_disable_comments_status', 20, 2);
    add_filter('pings_open', 'df_disable_comments_status', 20, 2);
    
    // Hide existing comments
    function df_disable_comments_hide_existing_comments($comments) {
        $comments = array();
        return $comments;
    }
    add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);
    
    // Remove comments page in menu
    function df_disable_comments_admin_menu() {
        remove_menu_page('edit-comments.php');
    }
    add_action('admin_menu', 'df_disable_comments_admin_menu');
    
    // Redirect any user trying to access comments page
    function df_disable_comments_admin_menu_redirect() {
        global $pagenow;
        if ($pagenow === 'edit-comments.php') {
            wp_redirect(admin_url()); exit;
        }
    }
    add_action('admin_init', 'df_disable_comments_admin_menu_redirect');
    
    // Remove comments metabox from dashboard
    function df_disable_comments_dashboard() {
        remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
    }
    add_action('admin_init', 'df_disable_comments_dashboard');
    
    // Remove comments links from admin bar
    function df_disable_comments_admin_bar() {
        if (is_admin_bar_showing()) {
            remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
        }
    }
    add_action('init', 'df_disable_comments_admin_bar');
    

    Source

  5. This will not remove it from your markup per se, but you can easily hide the WP 3.1 admin bar link (both visually and from screen-readers) by adding the following line to your theme’s CSS:

    li#wp-admin-bar-comments { display: none; visibility: hidden; }