とりあえずコード全部

// カラムを追加
function my_xxxxx_add_admin_columns( $column ) {
	$column = array(
		'cb'        => true,
		'title'     => 'タイトル',
		'タクソノミー名' => 'カテゴリー',
		'date'      => '日付',
	);
	return $column;
}
add_filter( 'manage_カスタム投稿タイプ名_posts_columns', 'my_xxxxx_add_admin_columns' );

// 値を表示
function my_xxxxx_manage_admin_columns( $column_name, $id ) {
	if ( 'タクソノミー名' === $column_name ) {
		$terms = get_the_terms( $id, 'タクソノミー名' );
		$cnt   = 0;
		if ( null !== $terms && is_array( $terms ) ) {
			foreach ( $terms as $var ) {
				echo 0 !== $cnt ? ', ' : '';
				echo '<a href="' . esc_url( get_admin_url() ) . 'edit.php?タクソノミー名=' . esc_html( $var->slug ) . '&post_type=カスタム投稿タイプ名">' . esc_html( $var->name ) . '</a>';
				++$cnt;
			}
		}
	}
}
add_action( 'manage_カスタム投稿タイプ名_posts_custom_column', 'my_xxxxx_manage_admin_columns', 10, 2 );

説明

【ステップ1】 一覧にカテゴリーカラムを追加する

まず、一覧にカテゴリーカラムを追加します。(※この時点ではまだ空のカラムの追加のみです。値の表示ステップ2で。)

manage_{$post_type}_posts_columns フックでカテゴリーを追加することができます。下記を functions.php に記述します。

functions.php

function my_xxxxx_add_admin_columns( $column ) {
	$column = array(
		'cb'        => true,
		'title'     => 'タイトル',
		'タクソノミー名' => 'カテゴリー',
		'date'      => '日付',
	);
	return $column;
}
add_filter( 'manage_カスタム投稿タイプ名_posts_columns', 'my_xxxxx_add_admin_columns' );

例えば カスタム投稿タイプ名が book、タクソノミー名が book_genre だとすると下記になります。(関数名は任意の名前でOKです)

function my_book_add_admin_columns( $column ) {
	$column = array(
		'cb'        => true,
		'title'     => 'タイトル',
		'book_genre' => 'カテゴリー',
		'date'      => '日付',
	);
	return $column;
}
add_filter( 'manage_book_posts_columns', 'my_book_add_admin_columns' );

【ステップ2】カラムに値を表示する

manage_{$post_type}_posts_custom_column フックで値を追加します。

functions.php

function my_xxxxx_manage_admin_columns( $column_name, $id ) {
	if ( 'タクソノミー名' === $column_name ) {
		$terms = get_the_terms( $id, 'タクソノミー名' );
		$cnt   = 0;
		if ( null !== $terms && is_array( $terms ) ) {
			foreach ( $terms as $var ) {
				echo 0 !== $cnt ? ', ' : '';
				echo '<a href="' . esc_url( get_admin_url() ) . 'edit.php?タクソノミー名=' . esc_html( $var->slug ) . '&post_type=カスタム投稿タイプ名">' . esc_html( $var->name ) . '</a>';
				++$cnt;
			}
		}
	}
}
add_action( 'manage_カスタム投稿タイプ名_posts_custom_column', 'my_xxxxx_manage_admin_columns', 10, 2 );

例えば カスタム投稿タイプ名が book、タクソノミー名が book_genre だとすると下記になります。(関数名は任意の名前でOKです)

function my_book_manage_admin_columns( $column_name, $id ) {
	if ( 'book_genre' === $column_name ) {
		$terms = get_the_terms( $id, 'book_genre' );
		$cnt   = 0;
		if ( null !== $terms && is_array( $terms ) ) {
			foreach ( $terms as $var ) {
				echo 0 !== $cnt ? ', ' : '';
				echo '<a href="' . esc_url( get_admin_url() ) . 'edit.php?book_genre=' . esc_html( $var->slug ) . '&post_type=book">' . esc_html( $var->name ) . '</a>';
				++$cnt;
			}
		}
	}
}
add_action( 'manage_book_posts_custom_column', 'my_book_manage_admin_columns', 10, 2 );

コメントを残す

メールアドレスが公開されることはありません。