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 stronFunkcja 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!