Czy istnieje jakikolwiek sposób na całkowite usunięcie funkcji i sekcji komentarzy?

26

Nie chcę, aby zapytania o komentarze były uruchamiane. Nie mam nic na temat komentarzy do wyświetlania w obszarze administracyjnym wordpress.

Czy jest to w jakikolwiek sposób możliwe?

EDYCJA: Usuń wszystkie łącza do komentarzy z paska administratora i wszystkich sekcji zaplecza.

Peter Westerlund
źródło
Wystarczy pamiętać, że będziesz musiał ręcznie usunąć kod z plików szablonów, ponieważ nie ma możliwości ukrycia go za pomocą kodu. Uważam, że jeśli się mylę, ktoś mnie poprawi.
xLRDxREVENGEx

Odpowiedzi:

40

Oto lista wszystkich powyższych odpowiedzi oraz usunięcie linku do paska administratora. Po prostu dodaj go do pliku funkcji motywów lub stwórz wtyczkę. Oznaczę to jako wiki społeczności, ponieważ odpowiedź wszystkich jest słuszna, nikt nie dodał tego wszystkiego razem.

<?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
źródło
11

Aby usunąć menu Komentarze:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
Dzikri Aziz
źródło
Świetny. A z nowego górnego panelu WP 3.1?
Peter Westerlund,
7

Powinno to usunąć obsługę komentarzy do Twojej witryny:

add_action('admin_menu', 'remove_comment_support');

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

Nie wiem jednak, czy ukryje każdą wzmiankę o komentarzach w sekcji administratora. Pole „Right Now” na desce rozdzielczej jest w większości zakodowane na stałe, więc musisz ukryć to pole lub zhakować, aby odfiltrować wiersz o „komentarzach”. Ale powinien usunąć tekst „komentarzy” wszędzie tam, gdzie mogę wymyślić.

Złote Jabłka
źródło
Ale nadal jest widoczny w menu administratora. Nie chcę tego
Peter Westerlund,
3

To nie usunie go z markup per se , ale można łatwo ukryć link bar WP 3.1 Administrator (zarówno wizualnie jak i od screen-czytelników), dodając następującą linię do CSS Twojego motywu:

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

poisontofu
źródło
Czytając trochę więcej na ten temat, znalazłem ten post w Six Revisions, który opisuje, jak ulepszyć wiele interfejsów administratora, w tym usunąć wszystkie ślady funkcji komentowania.
poisontofu
... i jeśli z jakiegokolwiek powodu chcesz pozostawić to ustawienie dla użytkowników na poziomie administratora, użyj current_user_canfunkcji, np .: if (!current_user_can('level_10'))kierowanie tylko na użytkowników niebędących administratorami.
poisontofu
Poziomy użytkowników są przestarzałe. Zamiast tego użyj „manage_options” lub innej możliwości.
scribu
@scribu: Zastanawiałem się nad tym, nie mogłem znaleźć żadnego nowego odniesienia do poziomów użytkowników w WP Codex. Dziękujemy za poinformowanie mnie ( ta tabela ról i możliwości pomogła mi uzyskać możliwości głowy).
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');

Źródło

Manolis
źródło