管理画面の記事一覧にターム名を表示する

NO IMAGE

はじめに

WordPressの管理画面で記事一覧を表示したときに、タームの値を表示したい場合があります。
以下のコードでタームの値を表示することができます。
また、タームの部分を変更すればどのような値でも表示することができます。

コード

// 表示するカラムの順番を変えたいとき
function my_add_columns($columns) {
    $ordered_columns = [];
    foreach($columns as $key => $value) {
        if ($value === '日付') {
            // my_example_columnは登録する際のキー名を自分でつける
            $ordered_columns['my_example_column'] = '一覧画面で表示したい文字列';
        }
        $ordered_columns[$key] = $value;
    }
    return $ordered_columns;
}
// {post_type}は適用したい投稿タイプ名を入れる
// ex) 投稿タイプ名がitemなら 'manage_edit-item_columns'
add_filter( 'manage_edit-{post_type}_columns', 'my_add_columns' );

// 順番は特に気にしない場合はこっちで大丈夫
// function my_add_columns($columns) {
//    $columns['my_example_column'] = '一覧画面で表示したい文字列';
//    return $columns;
//}
//add_filter( 'manage_edit-{post_type}_columns', 'my_add_columns' );

function my_add_columns_content($column_name, $post_id) {
  // my_add_columnsで登録したキー名で分岐
  if( $column_name == 'my_example_column' ) {
    $term = get_the_terms($post_id, 'タクソノミー名');
    if($term) {
        $stitle = $term[0]->name;
    }
  }
  if ( isset($stitle) && $stitle ) {
    echo esc_attr($stitle);
  }
}
// 上記と同様に{post_type}は適用したい投稿タイプ名を入れる
add_action( 'manage_{post_type}_posts_custom_column', 'my_add_columns_content', 10, 2 );

参考

https://www.isitwp.com/change-wordpress-admin-post-columns-order/
https://b-risk.jp/blog/2017/02/wp_admin_list_columns/