Admin – Dashboard – Die letzten Kommentare wurden deaktiviert

Ich versuche, die Kommentarliste im WordPress 4 Dashboard Abschnitt loszuwerden, aber es funktioniert nicht.

Hier ist, was ich versucht habe:

function remove_all_dashboard_widgets() { global $wp_meta_boxes; // these 2 are ok as they are not displayed anymore unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']); unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']); // I tried both "recent" and "latest comments" with no success unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']); unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_latest_comments']); // I also tried these two with no success remove_meta_box('dashboard_recent_comments', 'dashboard', 'core'); remove_meta_box('dashboard_latest_comments', 'dashboard', 'core'); } add_action('wp_dashboard_setup', 'remove_all_dashboard_widgets'); 

Die Felder “Schnelldruck” und “Primär” sind nicht gesetzt, es funktioniert also, aber die letzten Kommentare bleiben auf dem Bildschirm.

Das obige Beispiel wurde gleichzeitig getestet. Ich habe eins nach dem anderen versucht, aber es funktioniert nicht

Ich habe auch versucht, den Abschnitt mit CSS zu verstecken, indem ich hinzufügte:

 #latest_comments {display:none !important;} 

Aber es funktioniert immer noch nicht.

Irgendeine Idee?

Solutions Collecting From Web of "Admin – Dashboard – Die letzten Kommentare wurden deaktiviert"

Die Liste der letzten Kommentare ist Teil des Aktivitäts-Dashboard-Widget .

Ansatz # 1

Wir könnten dieses Dashboard-Widget entfernen und dann unsere modifizierte Version hinzufügen:

 /** * Remove the latest comments from the Activity dashboard widget (approach #1) */ add_action( 'wp_dashboard_setup', function() { // Remove the Activity widget remove_meta_box( 'dashboard_activity', 'dashboard', 'normal' ); // Add the modified Activity widget if ( is_blog_admin() ) wp_add_dashboard_widget( 'wpse_dashboard_activity', __( 'Activity' ), 'wpse_dashboard_site_activity' ); } ); 

wo unser kundenspezifischer callback (ohne Kommentare) ist:

 /** * Custom Activity Widget callback * * @see wp_dashboard_site_activity() */ function wpse_dashboard_site_activity() { echo '
'; $future_posts = wp_dashboard_recent_posts( array( 'max' => 5, 'status' => 'future', 'order' => 'ASC', 'title' => __( 'Publishing Soon' ), 'id' => 'future-posts', ) ); $recent_posts = wp_dashboard_recent_posts( array( 'max' => 5, 'status' => 'publish', 'order' => 'DESC', 'title' => __( 'Recently Published' ), 'id' => 'published-posts', ) ); // No comments! $recent_comments = false; // wp_dashboard_recent_comments(); if ( !$future_posts && !$recent_posts && !$recent_comments ) { echo '
'; echo '

'; echo '

' . __( 'No activity yet!' ) . '

'; echo '
'; } echo '
'; }

Wir könnten stattdessen verwendet haben:

 // No comments! $recent_comments = wp_dashboard_recent_comments( $total_items = 0 ); 

Ansatz # 2

Ein anderer kürzerer Ansatz wäre, sich in den dashboard_recent_posts_query_args Filter auf der Dashboard-Seite einzuklinken und die Kommentare zu entfernen:

 /** * Remove the latest comments from the Activity Dashboard widget (approach #2) */ add_action( 'load-index.php', function(){ add_filter( 'dashboard_recent_posts_query_args', function( $args ) { add_filter( 'the_comments', '__return_false' ); return $args; } ); } ); 

Ansatz # 3

Wir könnten dann weitere Einschränkungen hinzufügen, z. B. nur die Kommentare einmal leeren:

 /** * Remove the latest comments from the Activity Dashboard widget (approach #3) */ add_action( 'load-index.php', function(){ add_filter( 'dashboard_recent_posts_query_args', function( $args ) { add_filter( 'the_comments', function( $comments ) { static $instance = 0; $comments = ( 1 === ++$instance ) ? false : $comments; return $comments; } ); return $args; } ); } ); 

Ansatz # 4

Wenn wir die Abfrage der Kommentardatenbank reduzieren möchten, könnten wir stattdessen den pre_get_comments Hook verwenden.

Hier ist eine solche Idee:

 /** * Remove the latest comments from the Activity Dashboard widget (approach #4) */ add_action( 'load-index.php', function() { add_filter( 'dashboard_recent_posts_query_args', function( $args ) { // Let's exit the WP_Comment_Query from the get_comments_ids() method: add_action( 'pre_get_comments', function( \WP_Comment_Query $q ) { if( 1 === did_action( 'pre_get_comments' ) ) $q->set( 'count', true ); // Override the WHERE part add_filter( 'comments_clauses', function( $clauses ) { if( 1 === did_action( 'pre_get_comments' ) ) $clauses['where'] = ' 0=1 '; return $clauses; }, PHP_INT_MAX ); } ); return $args; } ); } ); 

Wir verwenden die count WP_Comment_Query von WP_Comment_Query um die databaseabfrage zu minimieren.

Ansatz # 5

Hier ist noch ein drastischer Ansatz:

 /** * Remove latest comments from the Activity Dashboard widget (approach #5) */ add_action( 'load-index.php', function() { add_filter( 'dashboard_recent_posts_query_args', function( $args ) { // Let's exit the WP_Comment_Query from the get_comments_ids() method: add_action( 'pre_get_comments', function( \WP_Comment_Query $q ) { if( 1 === did_action( 'pre_get_comments' ) ) $q->set( 'count', true ); // Eliminate the next query add_filter( 'query', function( $query ) { static $instance = 0; if( 1 === ++$instance ) $query = false; return $query; }, PHP_INT_MAX ); } ); return $args; } ); } ); 

wo wir nur diese Kommentarabfrage eliminieren.

Ansatz # 6

Endlich ist hier die CSS Version:

 /** * Hide the latest comments from the Activity Dashboard widget (approach #6) */ add_action( 'admin_head-index.php', function() { print ''; } );