Как полностью удалить функционал комментариев в WordPress?

5 мар. 2011 г., 10:20:03
Просмотры: 43.6K
Голосов: 34

Я не хочу, чтобы выполнялись какие-либо запросы, связанные с комментариями. Также не хочу, чтобы что-либо связанное с комментариями отображалось в админ-панели WordPress.

Возможно ли это каким-либо образом?

РЕДАКТИРОВАНИЕ: Удалить все ссылки на комментарии из админ-панели и всего бэкенд-раздела.

1
Комментарии

Просто заметка: вам придется вручную удалить код из ваших файлов шаблонов, так как нет способа скрыть его оттуда с помощью кода. Я так считаю, если я ошибаюсь - поправьте меня.

xLRDxREVENGEx xLRDxREVENGEx
22 мая 2011 г. 18:09:10
Все ответы на вопрос 6
0
66

Вот список всех вышеуказанных решений, включая удаление ссылки на комментарии из панели администратора. Просто добавьте этот код в файл функций вашей темы или создайте плагин. Я помечу это как 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' );
?>
22 мая 2011 г. 18:02:36
1
15

Чтобы удалить меню Комментарии:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
5 мар. 2011 г. 14:50:35
Комментарии

Отлично. А как насчет новой верхней панели в WP 3.1?

Peter Westerlund Peter Westerlund
6 мар. 2011 г. 13:37:32
1

Этот код должен отключить поддержку комментариев на вашем сайте:

add_action('admin_menu', 'remove_comment_support');

function remove_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}

Не уверен, скроет ли это все упоминания комментариев в админ-панели. Блок "Прямо сейчас" в консоли в основном жестко закодирован, поэтому вам придется скрыть этот блок или применить некоторые хитрости, чтобы убрать строку про "Комментарии". Но этот код должен убрать текст о комментариях везде, где только можно.

5 мар. 2011 г. 12:23:54
Комментарии

Но оно всё ещё видно в меню админки. Хочу убрать.

Peter Westerlund Peter Westerlund
5 мар. 2011 г. 13:59:21
0
// Отключение поддержки комментариев и обратных ссылок для типов записей
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');

Источник

17 дек. 2014 г. 18:36:58
4

Это не удалит элемент из разметки как таковой, но вы можете легко скрыть ссылку на панель администратора WP 3.1 (как визуально, так и для скринридеров), добавив следующую строку в CSS вашей темы:

li#wp-admin-bar-comments { display: none; visibility: hidden; }

22 мая 2011 г. 10:07:08
Комментарии

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

poisontofu poisontofu
22 мая 2011 г. 10:43:36

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

poisontofu poisontofu
22 мая 2011 г. 10:56:42

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

scribu scribu
22 мая 2011 г. 18:12:54

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

poisontofu poisontofu
26 мая 2011 г. 09:21:51
0

Существует готовое решение, которое делает именно это. Это плагин от Франка Бюльтге.

Документация: http://wpengineer.com/2230/removing-comments-absolutely-wordpress/

Скачать плагин: https://github.com/bueltge/Remove-Comments-Absolutely

Просто установите, и всё готово. Никакой настройки не требуется.

Плагин корректно работает с WordPress 3.5.

13 дек. 2012 г. 23:35:52