Skip to content

Instantly share code, notes, and snippets.

@mgratch
Created June 15, 2023 21:12
Show Gist options
  • Save mgratch/21f8fa6d63d4b2b136c75f6c715bef1d to your computer and use it in GitHub Desktop.
Save mgratch/21f8fa6d63d4b2b136c75f6c715bef1d to your computer and use it in GitHub Desktop.
This code will disable comments everywhere on your site, and remove all comment-related functionality from the WordPress admin area. It's a nuclear option, but if you want to ensure comments are completely disabled, it should do the trick.
<?php
/**
* Disable support for comments and pingbacks in post types
*/
function suntraxfl_disable_comments_post_types_support(): void {
$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', 'suntraxfl_disable_comments_post_types_support' );
/**
* Close comments on the front-end
*
* @return bool
*/
function suntraxfl_disable_comments_status(): bool {
return false;
}
add_filter( 'comments_open', 'suntraxfl_disable_comments_status', 20, 2 );
add_filter( 'pings_open', 'suntraxfl_disable_comments_status', 20, 2 );
/**
* Hide existing comments
*
* @param array $comments Existing comments.
* @return array
*/
function suntraxfl_disable_comments_hide_existing_comments( array $comments ): array {
return array();
}
add_filter( 'comments_array', 'suntraxfl_disable_comments_hide_existing_comments', 10, 2 );
/**
* Remove comments menu item
*/
function suntraxfl_disable_comments_admin_menu(): void {
remove_menu_page( 'edit-comments.php' );
}
add_action( 'admin_menu', 'suntraxfl_disable_comments_admin_menu' );
/**
* Redirect any user trying to access comments page
*/
function suntraxfl_disable_comments_admin_menu_redirect(): void {
global $pagenow;
if ( 'edit-comments.php' === $pagenow ) {
wp_safe_redirect( admin_url() );
exit;
}
}
add_action( 'admin_init', 'suntraxfl_disable_comments_admin_menu_redirect' );
/**
* Remove comments metabox from dashboard
*/
function suntraxfl_disable_comments_dashboard(): void {
remove_meta_box( 'dashboard_recent_comments', 'dashboard', 'normal' );
}
add_action( 'admin_init', 'suntraxfl_disable_comments_dashboard' );
/**
* Remove comments links from admin bar
*/
function suntraxfl_disable_comments_admin_bar(): void {
if ( is_admin_bar_showing() ) {
remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 );
}
}
add_action( 'init', 'suntraxfl_disable_comments_admin_bar' );
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment