2018.09.18
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);
実装すると以下の様にカスタムタクソノミーが一覧に表示されます。
ターム名をクリックすると、ちゃんと管理画面のターム一覧に推移します。
この手の機能はなくてもサイトの品質に影響はないのですが、あると運用が少し便利になり、更新の労力が少し減るので、長期的にはサイトのメリットになると考え極力実装しています。