Skip to content

Instantly share code, notes, and snippets.

@thomasstr
Created November 15, 2023 08:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thomasstr/9d477e6163ee5a65801c5d2c30fa54f7 to your computer and use it in GitHub Desktop.
Save thomasstr/9d477e6163ee5a65801c5d2c30fa54f7 to your computer and use it in GitHub Desktop.
disable-comments.php
<?php
add_action('admin_init', function () {
// Redirect any user trying to access comments page
global $pagenow;
if ($pagenow === 'edit-comments.php' || $pagenow === 'options-discussion.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_submenu_page('options-general.php', 'options-discussion.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);
}
});
// Remove comments icon from admin bar
add_action('wp_before_admin_bar_render', function() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
});
// Return a comment count of zero to hide existing comment entry link.
function zero_comment_count($count){
return 0;
}
add_filter('get_comments_number', 'zero_comment_count');
// Multisite - Remove manage comments from admin bar
add_action( 'admin_bar_menu', 'remove_toolbar_items', PHP_INT_MAX -1 );
function remove_toolbar_items( $bar )
{
$sites = get_blogs_of_user( get_current_user_id() );
foreach ( $sites as $site )
{
$bar->remove_node( "blog-{$site->userblog_id}-c" );
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment