34

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.

1
  • Just a note you will have to manually delete the code from your template files as there is no way of hiding it with code from there. I believe so if i am wrong someone correct me. Commented May 22, 2011 at 15:09

6 Answers 6

66

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' );
?>
15

To remove the Comments menu:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
1
  • Great. And from the new WP 3.1 top panel? Commented Mar 6, 2011 at 11:37
7

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.

1
  • But it still visible in admin menu. Don't want that. Commented Mar 5, 2011 at 11:59
6
// 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

3

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

4
  • While doing some more reading on this subject, I found this post on Six Revisions which covers how to tweak a lot of the admin interface, including removing all traces of a comment function.
    – poisontofu
    Commented May 22, 2011 at 7:43
  • ...and if for whatever reason you want to leave any of this on for admin-level users, use the current_user_can function, e.g: if (!current_user_can('level_10')) targets non-admin users only.
    – poisontofu
    Commented May 22, 2011 at 7:56
  • User levels are deprecated. Use 'manage_options' or some other capability instead.
    – scribu
    Commented May 22, 2011 at 15:12
  • @scribu: I wondered about this, couldn't find any recent reference to user levels in the WP Codex. Thanks for letting me know (this table of roles & capabilities helped me get my head capabilities).
    – poisontofu
    Commented May 26, 2011 at 6:21
3

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

Docs: http://wpengineer.com/2230/removing-comments-absolutely-wordpress/

Plug-in download: https://github.com/bueltge/Remove-Comments-Absolutely

Just install, and thats it. no config.

It works fine with WP 3.5

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.