Hook, um eine Spalte im Kommentarfenster zu bearbeiten?

Im Moment mache ich es

add_filter("manage_edit-comments_columns", function($columns) { unset($columns["author"]); $columns_one = array_slice($columns,0,1); $columns_two = array_slice($columns,1); $columns_one["user"] = "User"; $columns = $columns_one + $columns_two; return $columns; }); add_filter( 'manage_comments_custom_column', function($column, $column_id) { echo "Test"; },10, 2 ); 

Gibt es eine Möglichkeit, nur die Autorenspalte zu bearbeiten, statt meine eigene zu entfernen und zu erstellen?

Solutions Collecting From Web of "Hook, um eine Spalte im Kommentarfenster zu bearbeiten?"

Für diese Spalte gibt es keinen Filter. Die Antwort lautet also “Nein”.

WP_List_Table sucht nach der Methode column_ {something} innerhalb der Lister-class. Die class “Kommentare” hat column_author. Töte also diese Spalte und erstelle Filter wie du es jetzt tust.

Ich kam zu dieser Frage, da ich eine ähnliche Sache brauchte. Während eine Antwort von qwerty-qwerty korrekt ist, ist sie nur teilweise richtig. Soweit ich weiß, musste der Autor einen Spaltennamen ändern, während ich den Inhalt der Autorenspalte selbst ändern musste. Also, während das ein bisschen anders ist, werde ich es hier lassen, für den Fall, dass jemand diese Frage wie ich findet. Dies funktioniert auch, wenn Sie zusätzliche Daten zu Kommentaren benötigen, die nicht in der Metatabelle gespeichert sind und nicht wie diese Tabelle zwischengespeichert werden und keine separate Abfrage für jedes Element durchführen möchten.

Also, was Sie tun können, ist in den the_comments . Dieser Filter übergibt ein Array von WP_Comment_Object Instanzen für jeden gefundenen Kommentar, der der Anforderung entspricht. In meinem Fall könnten Kommentare mit einem anderen Namen als dem Anzeigenamen des Benutzers gespeichert werden. Wo dies der Fall war, musste ich einen tatsächlichen Anzeigenamen aus der wp_users Tabelle wp_users und ihn wie comment_author_from_wp_comments (display_name_from_wp_users) . Ich ging durch Array, übergeben durch den Filter, stellte fest, welche Kommentare zusätzliche Informationen aus der wp_users Tabelle benötigten, führte eine einzelne Abfrage zu dieser Tabelle durch und modifizierte dann Elemente innerhalb des ursprünglichen Arrays mit neuen Daten. Hier ist eine allgemeine Vorstellung davon, wie mein Code funktioniert:

 function my_filter($objects) { global $current_screen; if (is_admin() && $current_screen->id == 'edit-comments') // I only needed it on that screen within admin { if (count($objects) > 0) { foreach ($objects as $key => $object) { //find out which comments needed 'fixing' } //do the actual fixing } } return $objects; //return modified or unmodified array } add_filter('the_comments', 'my_filter'); 

Hoffentlich wird jemand in der Zukunft das nützlich finden.