manage_(post_type)_posts_columns
Позволяет изменить список зарегистрированных колонок в таблице Записей.
Хук формируется динамически для каждого типа записи, например:
manage_post_posts_columns
для типа записиpost
(записи).manage_page_posts_columns
для типа записиpage
(страницы).manage_product_posts_columns
для типа записиproduct
(товары в WooCommerce).- и так далее
Также смотрите похожие хуки:
- manage_pages_columns - срабатывает для типа записи
page
- manage_posts_columns - срабатывает для остальных типов записей
Использование
add_filter( 'manage_(post_type)_posts_columns', 'wp_kama_manage_post_type_posts_columns_filter' ); /** * Function for `manage_(post_type)_posts_columns` filter-hook. * * @param string[] $posts_columns An associative array of column headings. * * @return string[] */ function wp_kama_manage_post_type_posts_columns_filter( $posts_columns ){ // filter... return $posts_columns; }
- $post_columns(массив)
Массив с именами колонок. Например, у Записей дефолтный массив будет выглядеть так:
Array ( [cb] => <input type="checkbox" /> [title] => Заголовок [author] => Автор [categories] => Рубрики [tags] => Метки [comments] => <span class="vers comment-grey-bubble" title="Комментарии"><span class="screen-reader-text">Комментарии</span></span> [date] => Дата )
Примеры
#1 Удалим колонку "Автор" у Записей
Колонку "Автор" можно скрыть в секции "Настройки экрана", при таком подходе к ячейкам таблицы добавляется css класс hidden. Кодом ниже можно вообще отменить регистрацию этой колонки, тем самым данные физически не будут выведены.
add_filter( 'manage_post_posts_columns', function ( $columns ) { unset( $columns['author'] ); return $columns; } );
#2 Добавим колонку "ID" и "Миниатюра" для Записей
// Регистрируем колонку 'ID' и 'Миниатюра'. Обязательно. add_filter( 'manage_post_posts_columns', function ( $columns ) { $my_columns = [ 'id' => 'ID', 'thumb' => 'Миниатюра', ]; return array_slice( $columns, 0, 1 ) + $my_columns + $columns; } ); // Выводим контент для каждой из зарегистрированных нами колонок. Обязательно. add_action( 'manage_post_posts_custom_column', function ( $column_name ) { if ( $column_name === 'id' ) { the_ID(); } if ( $column_name === 'thumb' && has_post_thumbnail() ) { ?> <a href="<?php echo get_edit_post_link(); ?>"> <?php the_post_thumbnail( 'thumbnail' ); ?> </a> <?php } } ); // Добавляем стили для зарегистрированных колонок. Необязательно. add_action( 'admin_print_footer_scripts-edit.php', function () { ?> <style> .column-id { width: 50px; } .column-thumb img { max-width: 100%; height: auto; } </style> <?php } );
Список изменений
С версии 3.0.0 | Введена. |
Где вызывается хук
manage_(post_type)_posts_columns
wp-admin/includes/class-wp-posts-list-table.php 756
return apply_filters( "manage_{$post_type}_posts_columns", $posts_columns );