Disable comments in WordPress - By Roy Eyal

Avatar

By Verdi Heinz

updated about 1 month ago

Roy Eyal sent us a PHP snippet which will allow you to disable comments in WordPress completely.

Copy paste the code below or simply download this .json file which you can directly import in Code Snippets.

<?php

add_action( 'admin_init', function () {
	// Redirect any user trying to access comments page
	global $pagenow;

	if ( $pagenow === 'edit-comments.php' ) {
		wp_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( 'init', function () {
	if ( is_admin_bar_showing() ) {
		remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 );
	}
} );

Thank you so much Roy Eyal for sharing this useful snippet 🙏

ps. if anyone has improvements are other great snippets, please do share them with us so we can highlight you and yours too. Simply send you snippet to team@codesnippets.pro

Did this answer your question?