Prompt Detail:
Чтобы добавить колонку таксономии в админ-меню постов типа, нужно выполнить следующие шаги:
Открыть файл, где определен Post Type (обычно это файл
functions.php
в теме или плагине).Найти массив, который описывает Post Type. Обычно это массив, переданный функции
register_post_type
.Внутри массива найти ключ
taxonomies
, который определяет, какие таксономии относятся к Post Type.Добавить в массив
taxonomies
название таксономии, для которой нужно добавить колонку в админ-меню.Открыть файл, где определен хук
manage_{post_type}_posts_columns
, где{post_type}
- название Post Type (например,manage_post_posts_columns
для постов). Если такой хук не определен, нужно создать его.Внутри хука добавить новый элемент в массив
$columns
, где ключ - название колонки, а значение - ее заголовок. Например:
phpfunction custom_post_columns( $columns ) {
$columns['taxonomy_name'] = 'Taxonomy Column';
return $columns;
}
add_filter( 'manage_post_posts_columns', 'custom_post_columns' );
Открыть файл, где определен хук
manage_{post_type}_posts_custom_column
, где{post_type}
- название Post Type (например,manage_post_posts_custom_column
для постов). Если такой хук не определен, нужно создать его.Внутри хука добавить код для вывода данных в новую колонку. Для этого нужно получить значение нужной таксономии для текущей записи и вывести его. Например:
phpfunction custom_post_column_data( $column, $post_id ) {
if ( $column == 'taxonomy_name' ) {
$terms = get_the_terms( $post_id, 'taxonomy_name' );
if ( $terms ) {
$output = array();
foreach ( $terms as $term ) {
$output[] = $term->name;
}
echo implode( ', ', $output );
} else {
echo 'N/A';
}
}
}
add_action( 'manage_post_posts_custom_column', 'custom_post_column_data', 10, 2 );
Где 'taxonomy_name'
- название таксономии, а 'taxonomy_name_column'
- название колонки, которую мы добавили ранее.
После выполнения этих шагов должна появиться новая колонка с данными из нужной таксономии. Обратите внимание, что некоторые таксономии могут иметь множество значений для одной записи, поэтому код должен быть написан соответствующим образом, чтобы выводить все значения.