Колонки в админке WordPress для таблиц записей
Типы записей в WordPress
WordPress по умолчанию имеет свой тип записей идущих при установке. Основных с которыми работает пользователь два - post и page, которые в административном меню обзываются как "страницы" и "записи"
Дизайн админки достаточно унифицирован - он представляет собой таблицу с перечнем определенного типа записей
Однако помимо записей и страниц разработчики под WordPress часто создают свои типы записи с нужными им полями при помощи функции register_post_type
И тогда в админке появляются новые пункты меню под эти типы записи, со своей таблицей, типичные колонки которой не всегда удобны и подчас требуется выводить для удобства какие то свои данные, например из мета-полей созданных при помощи ACF.
Как добавить свои колонки в таблицу записей #
Сделать свои колонки для отображения в админке достаточно просто, на помощь нам придут как обычно фильтры и экшены WordPress.
В частности понадобится фильтр manage_(post_type)_posts_columns
для вставки самих колонок и экшен manage_(post_type)_posts_custom_column
для вставки данных в эти колонки
Примерный код будет такой:
<?php
// Название вашего типа записи из функции register_post_type
$post_type = 'my_post_type';
// Регистрируем свои колонки
add_filter( "manage_{$post_type}_posts_columns", function ( $defaults ) {
$defaults['custom-one'] = 'Custom One';
$defaults['custom-two'] = 'Custom Two';
return $defaults;
} );
// Вставляем значения для отображения в наших колонках
add_action( "manage_{$post_type}_posts_custom_column", function ( $column_name, $post_id ) {
if ( $column_name == 'custom-one' ) {
// пример статических данных
echo 'Some value here';
}
if ( $column_name == 'custom-two' ) {
// Пример вывода из поля ACF
echo get_field( 'my_acf_field', $post_id );
}
}, 10, 2 );