Есть ли ЛЮБОЙ способ полностью удалить функцию комментариев и раздел?

26

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

Это возможно каким-либо образом?

РЕДАКТИРОВАТЬ: удалить все ссылки на комментарии из админ-панели, а также весь внутренний раздел.

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

Ответы:

40

Вот список всех приведенных выше ответов и удаление ссылки админ-панели. Просто добавьте его в файл функций вашей темы или сделайте его плагином. Я отмечу это как сообщество вики, так как ответ каждого правильный, но никто не добавил все это вместе.

<?php
// Removes from admin menu
add_action( 'admin_menu', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
// Removes from post and pages
add_action('init', 'remove_comment_support', 100);

function remove_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}
// Removes from admin bar
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' );
?>
xLRDxREVENGEx
источник
11

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

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
Дзикри Азиз
источник
Отлично. А из новой верхней панели WP 3.1?
Питер Вестерлунд
7

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

add_action('admin_menu', 'remove_comment_support');

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

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

goldenapples
источник
Но это все равно видно в админке. Не хочу этого
Питер Вестерлунд
3

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

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

poisontofu
источник
Еще немного читая эту тему, я нашел этот пост в Six Revisions, в котором рассказывается, как настроить интерфейс администратора, включая удаление всех следов функции комментария.
poisontofu
... и если по какой-либо причине вы хотите оставить все это включенным для пользователей уровня администратора, используйте current_user_canфункцию, например: только if (!current_user_can('level_10'))для пользователей без прав администратора.
poisontofu
Пользовательские уровни устарели. Вместо этого используйте «manage_options» или другие возможности.
scribu
@scribu: я задавался вопросом об этом, не смог найти какой-либо недавней ссылки на пользовательские уровни в Кодексе WP. Спасибо, что сообщили мне ( эта таблица ролей и способностей помогла мне понять мои способности).
poisontofu
3
// Disable support for comments and trackbacks in post types
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');

// Close comments on the front-end
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);

// Hide existing comments
function df_disable_comments_hide_existing_comments($comments) {
    $comments = array();
    return $comments;
}
add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);

// Remove comments page in menu
function df_disable_comments_admin_menu() {
    remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'df_disable_comments_admin_menu');

// Redirect any user trying to access comments page
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');

// Remove comments metabox from dashboard
function df_disable_comments_dashboard() {
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'df_disable_comments_dashboard');

// Remove comments links from admin bar
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');

Источник

Манолис
источник