Как полностью удалить функционал комментариев в WordPress?
Я не хочу, чтобы выполнялись какие-либо запросы, связанные с комментариями. Также не хочу, чтобы что-либо связанное с комментариями отображалось в админ-панели WordPress.
Возможно ли это каким-либо образом?
РЕДАКТИРОВАНИЕ: Удалить все ссылки на комментарии из админ-панели и всего бэкенд-раздела.

Вот список всех вышеуказанных решений, включая удаление ссылки на комментарии из панели администратора. Просто добавьте этот код в файл функций вашей темы или создайте плагин. Я помечу это как wiki сообщества, так как все ответы верны, но никто не объединил их в одно решение.
<?php
// Удаление из меню администратора
add_action( 'admin_menu', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
remove_menu_page( 'edit-comments.php' );
}
// Удаление поддержки комментариев для записей и страниц
add_action('init', 'remove_comment_support', 100);
function remove_comment_support() {
remove_post_type_support( 'post', 'comments' );
remove_post_type_support( 'page', 'comments' );
}
// Удаление из панели администратора
function mytheme_admin_bar_render() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu('comments');
}
add_action( 'wp_before_admin_bar_render', 'mytheme_admin_bar_render' );
?>

Этот код должен отключить поддержку комментариев на вашем сайте:
add_action('admin_menu', 'remove_comment_support');
function remove_comment_support() {
remove_post_type_support( 'post', 'comments' );
remove_post_type_support( 'page', 'comments' );
}
Не уверен, скроет ли это все упоминания комментариев в админ-панели. Блок "Прямо сейчас" в консоли в основном жестко закодирован, поэтому вам придется скрыть этот блок или применить некоторые хитрости, чтобы убрать строку про "Комментарии". Но этот код должен убрать текст о комментариях везде, где только можно.

// Отключение поддержки комментариев и обратных ссылок для типов записей
function df_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', 'df_disable_comments_post_types_support');
// Закрытие комментариев на фронтенде
function df_disable_comments_status() {
return false;
}
add_filter('comments_open', 'df_disable_comments_status', 20, 2);
add_filter('pings_open', 'df_disable_comments_status', 20, 2);
// Скрытие существующих комментариев
function df_disable_comments_hide_existing_comments($comments) {
$comments = array();
return $comments;
}
add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);
// Удаление страницы комментариев из меню
function df_disable_comments_admin_menu() {
remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'df_disable_comments_admin_menu');
// Перенаправление пользователей при попытке доступа к странице комментариев
function df_disable_comments_admin_menu_redirect() {
global $pagenow;
if ($pagenow === 'edit-comments.php') {
wp_redirect(admin_url()); exit;
}
}
add_action('admin_init', 'df_disable_comments_admin_menu_redirect');
// Удаление метабокса комментариев из консоли
function df_disable_comments_dashboard() {
remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'df_disable_comments_dashboard');
// Удаление ссылок на комментарии из админ-панели
function df_disable_comments_admin_bar() {
if (is_admin_bar_showing()) {
remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
}
}
add_action('init', 'df_disable_comments_admin_bar');

Читая дальше на эту тему, я нашел эту статью на Six Revisions, в которой рассказывается, как настроить интерфейс администратора, включая удаление всех следов функции комментариев.

...и если по какой-то причине вы хотите оставить что-то из этого для пользователей с правами администратора, используйте функцию current_user_can
, например: if (!current_user_can('level_10'))
будет работать только для пользователей без прав администратора.

Уровни пользователей устарели. Вместо этого используйте 'manage_options' или другие возможности.

@scribu: Я задумался об этом, но не смог найти недавних упоминаний об уровнях пользователей в WP Codex. Спасибо, что сообщили (эта таблица ролей и возможностей помогла мне разобраться с возможностями).

Существует готовое решение, которое делает именно это. Это плагин от Франка Бюльтге.
Документация: http://wpengineer.com/2230/removing-comments-absolutely-wordpress/
Скачать плагин: https://github.com/bueltge/Remove-Comments-Absolutely
Просто установите, и всё готово. Никакой настройки не требуется.
Плагин корректно работает с WordPress 3.5.
