Anpassen von WordPress-Verwaltungstabellen: Erweiterte Änderungen

Veröffentlicht: 2021-01-26

In unserem ersten Artikel in unserer Reihe über das Anpassen der WordPress-Admin-Tabellen haben wir uns angesehen, wie Sie einige grundlegende Konfigurationen auf unsere Admin-Bildschirme für Beitragstypen anwenden können, einschließlich des Hinzufügens einer benutzerdefinierten Spalte und deren Sortierbarkeit.

Heute gehen wir noch einen Schritt weiter und sehen uns einige zusätzliche Änderungen an, die auf die Admin-Tabelle der Beitragsliste angewendet werden können. Lasst uns anfangen!

Verbesserung der WordPress Admin Posts-Tabelle

Die Bereitstellung zusätzlicher Informationen in Ihrem Admin-Tabellenbildschirm für Ihre Backend-Benutzer wird definitiv ihre Workflow-Erfahrung verbessern. In diesem Tutorial wollen wir die in unserer Post-Admin-Tabelle angezeigten Daten verbessern, indem wir Informationen hinzufügen, vorhandene Inhalte ändern, Spalten neu anordnen und sogar unnötige Tabellenspalten entfernen.

Ausgewählte Bilder anzeigen

Es wäre wirklich nützlich, der Beitragsliste Ihrer Admin-Tabelle ein Featured Thumbnail hinzuzufügen. Dies würde die Möglichkeit, zu sehen, ob ein Beitrag das falsche Bild hat (oder vielleicht überhaupt kein Bild hat), wirklich beschleunigen, ohne jeden einzelnen Beitrag öffnen zu müssen.

Um dies zu erreichen, erstellen wir eine Beitragsbildspalte für die Seite unseres Beitrags bearbeiten und füllen sie mit einem Miniaturbild. Wie in unserem vorherigen Artikel gezeigt, verwenden wir die manage_posts_columns . Wenn Sie diesen Artikel noch nicht gelesen haben, tun Sie dies bitte, da er einen Teil des Codes enthält, der für dieses Tutorial erforderlich ist.

Wenn Sie den Artikel gelesen und ihm gefolgt sind, sollten Sie den folgenden Code in der Datei functions.php Ihres aktiven Designs haben. Wenn nicht, bitte hinzufügen!

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; } }

Um das vorgestellte Bild in unserer Admin-Tabelle anzuzeigen, müssen wir diesen Code wie folgt bearbeiten:

 add_filter('manage_posts_columns','add_custom_columns'); function add_custom_columns( $columns ) { $columns['last_modified'] = 'Last modified'; $columns['my_post_thumbs'] = 'Thumbs'; return $columns; } add_action( 'manage_posts_custom_column','custom_columns_content', 10, 2 ); function custom_columns_content ( $column_id, $post_id ) { switch( $column_id ) { case 'last_modified': echo get_post_field('post_modified', $post_id); break; case 'my_post_thumbs': echo the_post_thumbnail( 'thumbnail' ); break; } }

Die Zahlen 10 und 2 im dritten und vierten Argument bestimmen die Priorität, mit der die dieser Aktion zugeordneten Funktionen verarbeitet werden. Diese Argumente werden an unsere Funktion custom_columns_content .

Die Voreinstellung für die Priorität ist 10. Die Zahl 2 zeigt die Anzahl der Argumente der Funktion. In unserem Fall ist es also wichtig, diese Zahlen einzuschließen, da wir zwei Argumente haben, nämlich $column_id und $post_id .

Nun, da dieser Code gespeichert ist, sehen wir uns an, was wir in unserem Admin-Posts-Bildschirm haben.

Vorgestellte Bilder der WordPress-Admin-Tabelle

Wie Sie sehen können, haben wir jetzt eine „Zuletzt geändert“-Spalte und unsere neue „Daumen“-Spalte.

Spaltenbeschriftungen ändern

Angenommen, wir möchten aus irgendeinem Grund die Bezeichnung einer Spalte ändern, benennen Sie beispielsweise die Spalte „Autor“ in „Autor“ um. Dazu können wir das neue Label einfach so definieren, wie wir unsere benutzerdefinierte Spalte hinzugefügt haben. Noch einmal, um unseren Code unverwechselbarer zu halten, werden wir die Umbenennungscode-Snippets mit einer anderen Funktion trennen.

 add_filter('manage_posts_columns','rename_columns'); function rename_columns( $columns ) { $columns['author'] = 'Writer'; return $columns; }

Natürlich können Sie die Bezeichnung mehrerer Spalten im selben Code-Snippet ändern, indem Sie einfach $columns['COLUMN_ID'] = 'NEW_LABEL'; direkt vor return $columns;

Erweitern Sie die Tabelle der WordPress-Admin-Seiten

Sie sind sich dessen vielleicht nicht bewusst, aber WordPress-Seiten sind ein hierarchischer Beitragstyp, was bedeutet, dass jede Seite eine übergeordnete Seite haben kann.

Es kann sehr hilfreich sein, auf einen Blick zu sehen, welche Seite die übergeordnete Seite einer untergeordneten Seite ist. Schauen wir uns an, wie das geht.

Fügen Sie eine benutzerdefinierte Spalte hinzu, die den übergeordneten Beitrag anzeigt

Zuerst wurden einige übergeordnete und untergeordnete Seiten mit einigen zugehörigen vorgestellten Bildern erstellt.

Übergeordnete und untergeordnete Posts der WordPress-Admin-Tabelle

Als Nächstes fügen wir etwas Code in unsere Datei functions.php ein. Wir werden den gleichen Prozess befolgen, den wir mit dem Posts-Typ gemacht haben, um das hinzuzufügen, was wir die Spalte „Vorfahren“ nennen werden.

 add_filter('manage_pages_columns','add_ancestor_column'); function add_ancestor_column( $columns ) { $columns['ancestor'] = 'Ancestor'; return $columns; }

Gleiches gilt für das Platzieren der Spalte an der gewünschten Position in der Tabelle. Wir werden die Spalten der Tabelle neu anordnen, sodass die Spalte „Vorfahr“ vor der Spalte „Autor“ steht.

 add_filter('manage_pages_columns', 'change_ancestor_column_position'); function change_ancestor_column_position($columns) { $n_columns = array(); foreach($columns as $key => $value) { if ($key=='author'){ $n_columns['ancestor'] = 'ancestor'; } $n_columns[$key] = $value; } return $n_columns; }

An diesem Punkt sollten Sie in Ihrem Pages-Admin-Bildschirm so etwas sehen:

Als letztes müssen wir die Spalte „Vorfahr“ mit dem richtigen Inhalt füllen. Da wir dieses Mal mit einem hierarchischen Beitragstyp arbeiten, verwenden wir einen anderen Hook, um den Spalteninhalt abzurufen. Versuchen Sie, dieses Stück Code einzufügen, und überprüfen Sie das Ergebnis.

 add_action( 'manage_pages_custom_column','ancestor_column_content', 10, 2 ); function ancestor_column_content ( $column_id, $post_id ) { switch( $column_id ) { case 'ancestor': $ancestors = get_ancestors($post_id, 'subject', 'post_type'); $post_ancestor = end($ancestors); if ($post_ancestor != 0) { echo '<a href="' . get_edit_post_link($post_ancestor) . '">' . get_the_title($post_ancestor) . '</a>'; } else { echo '-'; } break; } }

Sie sollten jetzt die zugehörige übergeordnete Seite neben den untergeordneten Seiten sehen, die in der Spalte „Vorfahr“ aufgeführt sind.

Dies ist besonders nützlich, wenn die Reihenfolge Ihrer Seiten in der Admin-Tabelle gestört wird (z. B. weil sie nach Veröffentlichungsdatum usw. sortiert sind) und daher untergeordnete Seiten nicht mehr sauber unter ihren jeweiligen übergeordneten Seiten angezeigt werden.

Ändern der Standardspalten

Es gibt mehrere Dinge, die getan werden können, um die Standardspalten der Admin-Tabelle zu verbessern. Werfen wir einen Blick auf einige davon.

Spalten neu anordnen

In unserem vorherigen Artikel zum Anpassen von Admin-Tabellen haben wir eine neue Spalte hinzugefügt, die das Datum anzeigt, an dem der Beitrag zuletzt geändert wurde. Aber was ist, wenn wir seine Position in der Spaltenreihenfolge ändern möchten?

Dies ist glücklicherweise ziemlich einfach und kann mithilfe des manage_posts_columns implementiert werden.

Was definiert werden muss, ist die Säule, die verschoben werden muss, und die Säule unmittelbar vor der Stelle, an der wir unsere Säule platzieren möchten. Wenn wir also zum Beispiel das Feature-Bild als erste Tabellenspalte haben wollen, müssen wir es vor die Titelspalte verschieben. Der entsprechende Stückcode sollte wie folgt lauten:

 add_filter('manage_posts_columns', 'change_column_order'); function change_column_order($columns) { $n_columns = array(); $move = 'author'; // what to move $before = 'title'; // move before this foreach($columns as $key => $value) { if ($key==$before){ $n_columns[$move] = $move; } $n_columns[$key] = $value; } return $n_columns; }

Und voila!

Fügen Sie vorgestellte Bilder zu Ihren WordPress-Admin-Tabellen hinzu

Entfernen einer Spalte

Gelegentlich sind einige Spalten der Beitragslistentabelle eigentlich nicht besonders nützlich und es wäre besser, wenn sie entfernt würden, um Platz zu schaffen. Ein häufiger Kandidat dafür ist die Kommentarspalte.

Glücklicherweise ist es sehr einfach, eine Spalte aus unserer Tabelle zu entfernen. Wir müssen nur unset($columns['comments']); in der Funktion des manage_posts_columns -Hooks. Dies könnte zwar zu unserem vorhandenen Code hinzugefügt werden, es ist jedoch übersichtlicher, wenn wir dies in ein eigenes Code-Snippet aufteilen können, da es einen anderen Zweck hat und dem Hook eine neue Funktion hinzufügt.

 add_filter('manage_posts_columns' , 'remove_columns'); function remove_columns($columns) { unset($columns['comments']); return $columns; }

Und das ist es. Aktualisieren Sie Ihren Admin-Bildschirm und Sie sollten sehen, dass die Spalte Kommentare verschwunden ist.

Hinweis: Wenn Sie sich nicht sicher sind, was die ID einer Spalte ist, können Sie dies mit der Inspector-Konsole Ihres Browsers feststellen.

Das Admin-Spalten-Plugin

Wenn Sie keine Änderungen an Ihren WordPress-Verwaltungstabellen codieren möchten, haben Sie keine Angst … da dies WordPress ist, gibt es ein Plugin, mit dem Sie eine Reihe von Aktualisierungen vornehmen können, ohne eine Codezeile berühren zu müssen. Es heißt Admin-Spalten.

Hinweis: Bevor Sie mit der Installation/Aktivierung des Plugins fortfahren, ist es besser, dass Sie alle Anpassungen in der Beitragslistentabelle (falls Sie welche vorgenommen haben) rückgängig machen und das Plugin mit der Admin-Beitragstabelle im ursprünglichen Zustand verwenden.

Nachdem Sie das Plugin heruntergeladen und installiert haben, gehen Sie zum Menüpunkt Einstellungen > Admin-Spalten. Von hier aus können Sie die Beitragslistentabelle (oder jeden anderen Beitragstyp, dessen Admin-Tabelle Sie bearbeiten möchten) aus der Dropdown-Liste auswählen. Anschließend wird Ihnen die aktuelle Tabellenstruktur angezeigt.

Mit einer Drag-and-Drop-Oberfläche können Sie die Spalten jetzt ganz einfach neu anordnen. Sie können auch das Typenschild und die Breite bearbeiten, indem Sie das Pfeilsymbol verwenden, um ihre Konfiguration anzuzeigen.

Und ja, Sie können sogar Ihre eigenen Spalten hinzufügen, indem Sie unten rechts auf die Schaltfläche „Spalte hinzufügen“ klicken!

Was das Plugin hier tatsächlich tut, ist, alle verfügbaren Optionen aus den Datenbanktabellen zu sammeln, die sich auf den Beitragstyp beziehen, und stellt diesen das Typ-Dropdown-Menü zur Verfügung. Wenn Sie also beispielsweise wie zuvor eine Spalte „Zuletzt geändert“ hinzufügen möchten, suchen und wählen Sie sie einfach in der Typliste aus und geben Sie ihr dann eine Bezeichnung und die gewünschte Breite.

Danach können Sie die angezeigten Datumsformatoptionen ändern, wenn Sie dies wünschen.

Fazit

Die richtigen Informationen in Ihren WordPress-Admin-Tabellen zu haben, kann Ihren Arbeitsablauf wirklich beschleunigen und helfen, Fehler auf Ihrer Website zu vermeiden. Beispielsweise ist es viel unwahrscheinlicher, dass Sie einen Beitrag wissentlich ohne ein Beitragsbild veröffentlichen, wenn Sie alle Ihre Beiträge und die zugehörigen Beitragsbilder auf einen Blick in der Post-Admin-Tabelle sehen können. Probieren Sie es aus und richten Sie Ihre Admin-Tabellen so ein, dass sie zu Ihnen und Ihrem Arbeitsablauf passen.