/ Wordpress / Отключение комментариев

Отключение комментариев

HIT

08.01.2020

1097

Для многих сайтов комментарии не нужны, и обычно даже без выведенной формы комментирования начинает сыпаться СПАМ. Отключим комментарии глобально.

Сделать это можно в настройках админки (Обсуждение) (делать это нужно изначально, но это не защищает от комментариев вложения) с помощью плагина Disable Comments (1 млн. скачиваний), либо набором функций:

add_action('admin_init', function () {
    // Redirect any user trying to access comments page
    global $pagenow;
    
    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);
    }
});

Массовое включение/отключение комментариев через БД

UPDATE wp_posts SET comment_status = 'open' WHERE post_type = 'post';
UPDATE wp_posts SET comment_status = 'open' WHERE post_type = 'product';

Массовое отключение всех комментариев (для всех типов)

UPDATE wp_posts SET comment_status = 'closed';

Если для определенного типа, то добавляем условие:

UPDATE wp_posts SET comment_status = 'closed' WHERE post_type = 'post';
UPDATE wp_posts SET comment_status = 'closed' WHERE post_type = 'product';

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Отключение комментариев
Фильтр по меткам (изменение основного запроса)
Рекомендации для васФильтр по меткам (изменение основного запроса)Opttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.