Există vreo modalitate de a elimina complet funcția și secțiunea de comentarii?

5 mar. 2011, 10:20:03
Vizualizări: 43.6K
Voturi: 34

Nu vreau ca niciun query legat de comentarii să ruleze. Nu vreau ca nimic legat de comentarii să fie afișat în zona de administrare WordPress.

Este posibil acest lucru în vreun fel?

EDITARE: Eliminați toate link-urile către comentarii din bara de administrare și din întreaga secțiune backend.

// Adaugă acest cod în functions.php
// Dezactivează suportul pentru comentarii și trackbacks
function disable_comments_completely() {
    // Dezactivează suportul pentru comentarii post types
    $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');
        }
    }
    
    // Ascunde elementele de comentarii din admin menu
    add_action('admin_menu', function () {
        remove_menu_page('edit-comments.php');
    });
    
    // Ascunde bara de admin comentarii
    add_action('admin_bar_menu', function($wp_admin_bar) {
        $wp_admin_bar->remove_node('comments');
    }, 999);
    
    // Redirectionează orice acces la pagina de comentarii
    add_action('admin_init', function () {
        global $pagenow;
        if ($pagenow === 'edit-comments.php') {
            wp_redirect(admin_url()); exit;
        }
    });
    
    // Dezactivează pingback-urile XML-RPC
    add_filter('xmlrpc_methods', function($methods) {
        unset($methods['pingback.ping']);
        return $methods;
    });
}
1
Comentarii

Doar o notă, va trebui să ștergi manual codul din fișierele tale de template, deoarece nu există nicio modalitate de a-l ascunde cu cod de acolo. Cred că așa este, dacă greșesc, cineva să mă corecteze.

xLRDxREVENGEx xLRDxREVENGEx
22 mai 2011 18:09:10
Toate răspunsurile la întrebare 6
0
66

Iată o listă cu toate răspunsurile de mai sus și eliminarea link-ului din bara de administrare. Adăugați acest cod în fișierul de funcții al temei dumneavoastră sau creați un plugin. Voi marca acest lucru ca un wiki al comunității, deoarece fiecare răspuns este corect, doar că nimeni nu a adăugat totul împreună.

<?php
// Elimină din meniul de administrare
add_action( 'admin_menu', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
// Elimină din articole și pagini
add_action('init', 'remove_comment_support', 100);

function remove_comment_support() {
    remove_post_type_support( 'post', 'comments' );
    remove_post_type_support( 'page', 'comments' );
}
// Elimină din bara de administrare
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 mai 2011 18:02:36
1
15

Pentru a elimina meniul Comentarii:

add_action( 'admin_init', 'my_remove_admin_menus' );
function my_remove_admin_menus() {
    remove_menu_page( 'edit-comments.php' );
}
5 mar. 2011 14:50:35
Comentarii

Excelent. Și din noua bară superioară WP 3.1?

Peter Westerlund Peter Westerlund
6 mar. 2011 13:37:32
1

Aceasta ar trebui să elimine suportul pentru comentarii pe site-ul tău:

add_action('admin_menu', 'remove_comment_support');

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

Nu sunt sigur dacă va ascunde toate mențiunile despre comentarii în secțiunea de administrare. Caseta "Right Now" din panoul de control este în mare parte hard-codată, așa că va trebui fie să ascunzi acea casetă, fie să faci niște modificări pentru a filtra linia despre "Comentarii". Dar ar trebui să elimine textul "comentarii" peste tot în rest, din câte îmi pot imagina.

5 mar. 2011 12:23:54
Comentarii

Dar este încă vizibil în meniul de administrare. Nu vreau asta.

Peter Westerlund Peter Westerlund
5 mar. 2011 13:59:21
0
// Dezactivează suportul pentru comentarii și trackback-uri în tipurile de postări
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');

// Închide comentariile pe 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);

// Ascunde comentariile existente
function df_disable_comments_hide_existing_comments($comments) {
    $comments = array();
    return $comments;
}
add_filter('comments_array', 'df_disable_comments_hide_existing_comments', 10, 2);

// Elimină pagina de comentarii din meniu
function df_disable_comments_admin_menu() {
    remove_menu_page('edit-comments.php');
}
add_action('admin_menu', 'df_disable_comments_admin_menu');

// Redirecționează orice utilizator care încearcă să acceseze pagina de comentarii
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');

// Elimină metabox-ul de comentarii de pe panoul de control
function df_disable_comments_dashboard() {
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');
}
add_action('admin_init', 'df_disable_comments_dashboard');

// Elimină link-urile către comentarii din bara de administrare
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');

Sursă

17 dec. 2014 18:36:58
4

Acest lucru nu va elimina efectiv elementul din marcajul tău per se, dar poți ascunde cu ușurință link-ul bără de administrare WP 3.1 (atât vizual, cât și pentru cititoarele de ecran) prin adăugarea următoarei linii în CSS-ul temei tale:

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

22 mai 2011 10:07:08
Comentarii

În timp ce citeam mai multe despre acest subiect, am găsit acest articol pe Six Revisions care acoperă cum să ajustezi o mare parte din interfața de administrare, inclusiv eliminarea tuturor urmelor funcției de comentarii.

poisontofu poisontofu
22 mai 2011 10:43:36

...și dacă din orice motiv doriți să lăsați oricare dintre acestea activate pentru utilizatorii cu drepturi de administrator, folosiți funcția current_user_can, de exemplu: if (!current_user_can('level_10')) țintește doar utilizatorii care nu sunt administratori.

poisontofu poisontofu
22 mai 2011 10:56:42

Nivelurile de utilizator sunt învechite. Folosiți 'manage_options' sau altă capabilitate în loc.

scribu scribu
22 mai 2011 18:12:54

@scribu: M-am întrebat despre asta, dar nu am găsit nicio referință recentă la nivelurile de utilizator în WP Codex. Mulțumesc că mi-ai spus (acest tabel cu roluri și capacități m-a ajutat să înțeleg mai bine capacitățile).

poisontofu poisontofu
26 mai 2011 09:21:51
0

Există o soluție gata de utilizare care face exact asta. Este un plugin creat de Frank Bültge.

Documentație: http://wpengineer.com/2230/removing-comments-absolutely-wordpress/

Descărcare plugin: https://github.com/bueltge/Remove-Comments-Absolutely

Doar instalează și atât. Nu necesită configurare.

Funcționează perfect cu WordPress 3.5.

13 dec. 2012 23:35:52