Jak stworzyć dodatkowe kolumny w panelu administracyjnym ?

Jeśli chcemy dodać w panelu administracyjnym dodatkowe kolumny, to musimy dodać dwie funkcje i użyć odpowiednich poleceń.
Pierwsze polecenie odpowiada za dodawanie kolumn do już istniejących stron i postów. Posiada ona kilka wariacji zależnie czy chcemy dodać tą funkcjonalność w edycji stron, postów czy custom post type:

add_filter('manage_szkolenia_posts_columns' , 'add_columns'); //stworzy je w edycji Custom Post type Szkolenia
add_filter('manage_posts_columns' , 'add_columns'); //stworzy je w edycji postów
add_filter('manage_pages_columns' , 'add_columns'); //stworzy je w edycji stron

Funkcja w naszym wypadku przekazująca informację, jakie kolumny mamy dodać nosi nazwę add_columns i wygląda następująco:

function add_columns($columns) {
return array_merge( $columns,
array('miasto' => __('Miasto'), //nazwa i tytuł pierwszego pola
'data_szkolenia' => __('Data szkolenia') //nazwa i tytuł drugiego pola
)
);
}

Mamy już kolumny? Świetnie! Teraz wypadało by je czymś wypełnić. I tutaj użyjemy drugiej funkcjonalności:

add_action('manage_szkolenia_posts_custom_column', 'manage_szkolenia_columns', 10, 2);

Analogicznie jak w pierwszym przykładzie można tego użyć dla postów, stron czy custom post type.
W naszym przypadku przypadku stworzyliśmy kolumny z użyciem Advaced Custom Fields a finalny kod wygląda w następujący sposób.

function add_columns($columns) {
return array_merge( $columns,
array('miasto' => __('Miasto'),
'data_szkolenia' => __('Data szkolenia')
)
);
}
add_filter('manage_szkolenia_posts_columns' , 'add_columns');
add_action('manage_szkolenia_posts_custom_column', 'manage_szkolenia_columns', 10, 2);

function manage_szkolenia_columns($column_name, $id) {
switch ($column_name) {
case 'miasto': 
echo get_field('miasto'); //Jeżeli kolumna jest miasto, wyświetl pole miasto z acf
break;
case 'data_szkolenia':
echo get_field('start'); //Jeżeli kolumna jest data_szkolenia, wyświetl pole start z acf
break;
default:
break;
} // end switch
}

Efekt końcowy wygląda następująco:

Smacznego!

1 Gwiazdka2 Gwiazdki3 Gwiazdki4 Gwiazdki5 Gwiazdek (1 głosów, średnia: 5,00 z 5)
Loading...

Adres biura
ul. Sadowa 10,
41-200 Sosnowiec

Adres korespondencyjny
ul. Gwiezdna 8/10,
Sosnowiec 41-218

Skontaktuj się
witam@360px.pl
514-410-660