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 755
return apply_filters( "manage_{$post_type}_posts_columns", $posts_columns );
