Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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.

share|improve this question
    
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. –  xLRDxREVENGEx May 22 '11 at 15:09

6 Answers 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

share|improve this answer

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

share|improve this answer

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' );
?>
share|improve this answer

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.

share|improve this answer
    
But it still visible in admin menu. Don't want that. –  Peter Westerlund Mar 5 '11 at 11:59

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

share|improve this answer
    
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 May 22 '11 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 May 22 '11 at 7:56
    
User levels are deprecated. Use 'manage_options' or some other capability instead. –  scribu May 22 '11 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 May 26 '11 at 6:21

To remove the Comments menu:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
share|improve this answer
    
Great. And from the new WP 3.1 top panel? –  Peter Westerlund Mar 6 '11 at 11:37

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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