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?

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

Solutions Collecting From Web of "Is there ANY way to remove comments function and section totally?"

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.

// 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;
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );

To remove the Comments menu:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );

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.

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; }

// 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() {
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');


There’s an out-of-the-box solution that does just that. It’s a plugin from Frank Bültge


Plug-in download:

Just install, and thats it. no config.

It works fine with WP 3.5