<?php
/**
 * Disable comments everywhere.
 *
 * Code from:
 * @link https://gist.github.com/mattclements/eab5ef656b2f946c4bfb
 *
 * @todo move to the tamu plugin with an options page. Should be on by default but option to disable.
 *
 * This file is included by the AUX parent theme functions.php. This file
 * cannot be overridden by a file of the same name in a child theme.
 *
 * @since 1.0.0
 */

 // Remove comments on the admin side of WP
add_action('admin_init', function () {
  // Redirect any user trying to access comments page
  global $pagenow;

  // Redirect to login if someone tries to directly access the comments page.
  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);
  }
});

// Remove comments icon from the admin bar
function aux_remove_admin_bar_comments_link(){
  global $wp_admin_bar;
  $wp_admin_bar->remove_menu('comments');
}
add_action('wp_before_admin_bar_render', 'aux_remove_admin_bar_comments_link');

// Remove the comments feed from the <head>
function aux_remove_comment_feed() {
  add_filter('feed_links_show_comments_feed', '__return_false');
}
add_action('after_setup_theme', 'aux_remove_comment_feed');
