Добавление категории в столбец админ-панели для произвольного типа записи
Я создал произвольный тип записи (custom post type) под названием article, но информация на экране админ-панели довольно скудная. Мне удалось добавить миниатюру записи, используя http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column из туториала.
Однако я хотел бы получить обзор категорий и подкатегорий, которые были назначены этим записям на странице администратора, т.е. добавить столбец для этой части?
Вот код, который я использовал для регистрации таксономии в коде произвольного типа записи

Функция register_taxonomy имеет параметр show_admin_column
, который отвечает за добавление колонки. Вы пробовали его использовать?
Например:
register_taxonomy(
'my_tax,
'post_type',
array(
'label' => 'Моя Таксономия',
'show_admin_column' => true,
)
);

Пожалуйста, добавьте код и объясните, как его использование отвечает на вопрос. Если вы просто хотите что-то спросить у автора вопроса, используйте комментарии.

После некоторых поисков я нашел решение, используя фильтр manage_edit-${post_type}_columns
и действие manage_${post_type}_posts_custom_column
.
Колонки создаются с помощью фильтра, а затем заполняются с помощью действия. Я предполагаю, что дополнительные колонки можно легко добавить и заполнить, используя идеи из этой ссылки http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types
add_filter('manage_edit-article_columns', 'my_columns');
function my_columns($columns) {
$columns['article_category'] = 'Категория';
return $columns;
}
add_action( 'manage_article_posts_custom_column', 'my_manage_article_columns', 10, 2 );
function my_manage_article_columns( $column, $post_id ) {
global $post;
switch( $column ) {
/* Если отображается колонка 'article_category'. */
case 'article_category' :
/* Получаем категории для записи. */
$terms = get_the_terms( $post_id, 'article_category' );
/* Если категории найдены. */
if ( !empty( $terms ) ) {
$out = array();
/* Перебираем каждую категорию, добавляя ссылку на страницу редактирования записей для конкретной категории. */
foreach ( $terms as $term ) {
$out[] = sprintf( '<a href="%s">%s</a>',
esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'article_category' => $term->slug ), 'edit.php' ) ),
esc_html( sanitize_term_field( 'name', $term->name, $term->term_id, 'article_category', 'display' ) )
);
}
/* Объединяем категории, разделяя их запятой. */
echo join( ', ', $out );
}
/* Если категории не найдены, выводим сообщение по умолчанию. */
else {
_e( 'Нет статей' );
}
break;
/* Просто выходим из switch для всего остального. */
default :
break;
}
}

Почти такой же вопрос: мне нужен дополнительный столбец "категория" в админке. "категория" — это таксономия, созданная с помощью Divi Machine. Слаг таксономии — art_category. В файле functions.php дочерней темы я смог отобразить поля ACF, даже сделал их сортируемыми, но это поля ACF. Столбец "Категория" отображается, однако в нем нет значений.
Ответ должен быть где-то здесь:
if ( 'artcategory' === $column ) {
$artcategory = get_post_meta( $post_id, 'art_category', true );
if ( ! $artcategory ) {
_e( 'н/д' ); // н/д - не задано
} else {
echo $artcategory;
}
}
Что я делаю не так.....

Это не совсем отвечает на вопрос. Если у вас другой вопрос, вы можете задать его, нажав Задать вопрос. Чтобы получать уведомления о новых ответах на этот вопрос, вы можете отслеживать этот вопрос. Как только у вас будет достаточно репутации, вы также сможете назначить награду, чтобы привлечь больше внимания к этому вопросу. - Из обзора
