Frisch notiert!

Die neusten Artikel aus unserem Blog.

ACF: Übersicht eines Custom Post Types in WordPress um eigene Spalten (Admin-Columns) erweitern

Zuletzt aktualisiert am 15/06/2020 von Gino Cremer
4 Kommentare
Wordpress
/ Wordpress / 4

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/

Gino Cremer

Ich bin Geschäftsführer der auf Weblösungen spezialisierten Agentur Pixelbar aus dem belgischen Eupen. Ich habe langjährige Erfahrung mit CMS-basierten Kundenprojekten, vornehmlich auf WordPress-Basis und bin ein Webdesigner der ersten Stunde. Daneben arbeite ich auch als Dozent und Berater am WIFI Wien im Bereich Social Media und Webdesign.

Weitere Beiträge von gino anzeigen

4 Kommentare

  1. 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

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert