Last active
November 19, 2025 11:07
-
-
Save estevan-ulian/861b3a4700359401768e698be94664de to your computer and use it in GitHub Desktop.
This code snippet completely disables WordPress comments. Insert it into your theme's functions.php file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| // Disables support for comments and trackbacks on all post types | |
| function 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', 'disable_comments_post_types_support'); | |
| // Close comments on the front-end | |
| function disable_comments_status() { | |
| return false; | |
| } | |
| add_filter('comments_open', 'disable_comments_status', 20, 2); | |
| add_filter('pings_open', 'disable_comments_status', 20, 2); | |
| // Hide existing comments | |
| function disable_comments_hide_existing_comments($comments) { | |
| $comments = array(); | |
| return $comments; | |
| } | |
| add_filter('comments_array', 'disable_comments_hide_existing_comments', 10, 2); | |
| // Remove comments page in menu | |
| function disable_comments_admin_menu() { | |
| remove_menu_page('edit-comments.php'); | |
| } | |
| add_action('admin_menu', 'disable_comments_admin_menu'); | |
| // Redirect any user trying to access comments page | |
| function disable_comments_admin_menu_redirect() { | |
| global $pagenow; | |
| if ($pagenow === 'edit-comments.php') { | |
| wp_redirect(admin_url()); exit; | |
| } | |
| } | |
| add_action('admin_init', 'disable_comments_admin_menu_redirect'); | |
| // Remove comments metabox from dashboard | |
| function disable_comments_dashboard() { | |
| remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal'); | |
| } | |
| add_action('admin_init', 'disable_comments_dashboard'); | |
| // Remove comments from topbar | |
| function my_admin_bar_render() { | |
| global $wp_admin_bar; | |
| $wp_admin_bar->remove_menu('comments'); | |
| } | |
| add_action( 'wp_before_admin_bar_render', 'my_admin_bar_render' ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment