Skip to main content
NewWebmaster.RU

Колонки в админке WordPress для таблиц записей

Типы записей в WordPress

WordPress по умолчанию имеет свой тип записей идущих при установке. Основных с которыми работает пользователь два - post и page, которые в административном меню обзываются как "страницы" и "записи"

Дизайн админки достаточно унифицирован - он представляет собой таблицу с перечнем определенного типа записей

Типичная админка WordPress

Однако помимо записей и страниц разработчики под 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 );