ACF: Übersicht eines Custom Post Types in WordPress um eigene Spalten (Admin-Columns) erweitern
Ruft man im WordPress-Dashboard die Übersicht eines eigenen Beitragstypen (Custom Post Types) auf, werden standardmäßig immer die gleichen Spalten eingeblendet. Dabei helfen ein paar wenige Zeilen, um eigene Spalten hinzuzfügen. Perfekt geeignet zur Darstellung von Text-Feldern wie "Referenznummern" zum Beispiel. Wir zeigen wie das geht.
Die Standard-Übersicht
In der Standard-Übersicht werden nur ein paar wenige Spalten angezeigt. Man findet den Titel des jeweiligen Beitrages, das Veröffentlichungsdatum, die jeweils für diesen Beitragstypen registrierten „Custom Taxonomies“…und ein paar andere Spalten, die sich mitunter durch andere Plugins „eingenistet“ haben.
Wer auf Advanced Custom Fields (ACF) setzt, wird aber höchstwahrscheinlich seinen Beitragstypen um neue Felder „angereichert“ haben. Entsprechend kann es durchaus sinnvoll sein, diese Felder in der Übersicht anzeigen zu lassen.
Angenommen wir möchten eine Referenznummer und eine Beschreibung als neue Spalte einblenden, müssen wir diese erst als neue ACF-Feldergruppe anlegen.
In einem Schritt muss nun folgender erster Code in die functions.php Datei des jeweiligen Themes bzw. Child-Themes kopiert und angepasst werden.
function pix_add_acf_columns ( $columns ) {
return array_merge ( $columns, array (
'referenznummer' => __ ( 'Referenznummer' ),
'beschreibung' => __ ( 'Beschreibung' )
) );
}
add_filter ( 'manage_product_posts_columns', 'pix_add_acf_columns' );
Welche Werte und Daten müssen in diesem Code angepasst werden?
Hier müssen einmal die ACF-Felder mit den jeweiligen Namen (Keys) korrekt notiert werden. Der Array kann beliebig erweitert werden. Außerdem – und das ist sehr wichtig – muss der Name des Filter-Hooks entsprechend dem Namen des registrierten Custom Post Types angepasst werden. Bei uns wurde der Custom Post Type „product“ mit genau diesem Namen registriert. Entsprechend heißt der Filter hier manage_product_posts_columns – Hätten wir zum Beispiel einen „Custom Post Type“ mit dem Namen „immobilie“ registriert, hieße dieser Filter also folgerichtig manage_immobilie_posts_columns
Im nächsten Schritt kümmern wir uns nun um die konkrete Ausgabe der neuen Spalten. Dieser Code wird ebenfalls angehängt bzw. der functions.php Datei beigefügt und angepasst:
function pix_product_custom_column ( $column, $post_id ) {
switch ( $column ) {
case 'referenznummer':
echo get_post_meta ( $post_id, 'referenznummer', true );
break;
case 'beschreibung':
echo get_post_meta ( $post_id, 'beschreibung', true );
break;
}
}
add_action ( 'manage_product_posts_custom_column', 'pix_product_custom_column', 10, 2 );
Und was muss ich hier anpassen?
Die „Switch-Case-Anweisung“ wird entsprechend erweitert und angepasst. Außerdem muss der jeweiligen get_post_meta()-Funktion der korrekte ACF-Name bzw. Key mitgeteilt werden.
Und auch hier wieder wichtig: Der Name des anzusprechenden Filter-Hooks muss wieder angepasst werden. In unserem Fall nennt sich dieser manage_product_posts_custom_column – wenn wir bei dem Beispiel der Immobilie bzw. des Custom Post Types „immobilie“ bleiben, hieße dieser in dem Fall also manage_immobilie_posts_custom_column
Das Ergebnis: Zwei neue Spalten im WordPress-Dashboard
Der vollständige Code im Überblick
<?php
/*
* Add columns to post list
*/
function add_acf_columns ( $columns ) {
return array_merge ( $columns, array (
'referenznummer' => __ ( 'Referenznummer', 'pixelpress' ),
'beschreibung' => __ ( 'Beschreibung', 'pixelpress' )
) );
}
add_filter ( 'manage_product_posts_columns', 'add_acf_columns' );
function pix_product_custom_column ( $column, $post_id ) {
switch ( $column ) {
case 'referenznummer':
echo get_post_meta ( $post_id, 'referenznummer', true );
break;
case 'beschreibung':
echo get_post_meta ( $post_id, 'beschreibung', true );
break;
}
}
add_action ( 'manage_product_posts_custom_column', 'pix_product_custom_column', 10, 2 );
Und wenn ich mehr will? Zum Beispiel "Inline Editing" direkt in der Übersicht?
Wer auch direkt aus der Übersicht heraus seine Beiträge entsprechend bearbeiten möchte, sollte einen Blick auf "Admin Columns Pro" werfen. Das kostenplichtige Plugin erlaubt alle Spalten der Übersichts-Tabellen feingliedrig anzupassen und bequem um eigene ACF-Spalten zu erweitern. Außerdem kann man direkt aus der Übersicht heraus die dort notierten Werte ändern. Perfekt also um das ständige BEtreten der "Bearbeitungsmaske" bzw. des Beitragsdetails zu vermeiden. Mehr Infos: https://www.admincolumns.com/
Danke für die ausführliche Anleitung!
sehr gutes Tutorial, bei mir alles gelungen!
Hallo Pixelbar-Team,
war das hier der letzte Blogbetrag oder habe ich irgendwas übersehen? Ich fand eure Posts immer sehr informativ und würde mich über ein Update freuen, falls ihr noch weiter bloggt.
Viele Grüße und ein schönes Wochenende
Simon
Hallo Simon, vielen Dank! Ja oftmals fehlt tatsächlich die Zeit. Wir geloben aber Besserung ! :-)