東京都府中市、九段下のWEB制作会社Maromaroのブログです

2018.09.18

hoshida

WordPress投稿一覧にカスタムタクソノミー(リンク付き)を表示させる

Maromaroコーダーのhoshidaです。

デフォルトの「タグ」や「カテゴリー」は管理画面の記事一覧に表示されていますが、カスタムタクソノミーを作成した場合は、一覧に表示されません。

表示させる方法はググるとわんさか出てくるのですが、それらの記事には大抵問題があります。それは、タームのリンク部分に単純にパーマリンクを出力しているため、管理画面ではなく表側のターム一覧へのリンクになってしまっているのです。管理画面の記事一覧のタームをクリックしたら、管理画面のターム一覧に推移しないとダメでしょ!!

ということで、以下のコードをfanctions.phpに記述します。管理画面のターム一覧のリンクを出力する関数はないので、色々と組み合わせてパラメーターに付与しています。

my_taxonomyをタクソノミー名に書き換えてください。複数の投稿タイプがある場合は、目的の投稿タイプには表示が出ないように分岐しましょう。

function add_custom_column( $defaults ) {
  $defaults['my_taxonomy'] = 'タクソノミーラベル名';
  return $defaults;
}
add_filter('manage_posts_columns', 'add_custom_column');

function add_custom_column_id($column_name, $id) {
  if( $column_name == 'my_taxonomy' ) {
    $terms = get_the_terms( $id, $column_name );
    $term_lists = array();
    foreach ( $terms as $term ) {
      $term_lists[] = '<a href="'.admin_url().'edit.php?post_type='.get_post_type().'&'.$column_name.'='.$term->slug.'">'.$term->name.'</a>';
    }
    $term_list = join( ", ", $term_lists );
    echo $term_list;
  }
}
add_action('manage_posts_custom_column', 'add_custom_column_id', 10, 2);

実装すると以下の様にカスタムタクソノミーが一覧に表示されます。

ターム名をクリックすると、ちゃんと管理画面のターム一覧に推移します。

この手の機能はなくてもサイトの品質に影響はないのですが、あると運用が少し便利になり、更新の労力が少し減るので、長期的にはサイトのメリットになると考え極力実装しています。