WordPressの管理画面にあるカテゴリー・タグ一覧テーブルにID用のカラムを追加し、表示する方法をメモ。
カテゴリーIDやタグIDを管理画面から簡単に確認できるようにしたい場合に便利です。
目次
カテゴリー・タグ一覧テーブルにIDを表示するコード
まずは今回の完成コードをお見せしておきます。
以下をfunctions.php
へコピペするだけでOKです。
カテゴリー・タグの一覧画面テーブルにIDカラム追加
//カラム追加( 2列目に追加 )
function add_term_columns( $columns ) {
return array_merge(
array_slice($columns, 0, 2),
array('id' => 'ID'),
array_slice($columns, 2)
);
}
add_filter('manage_edit-category_columns' , 'add_term_columns');
add_filter('manage_edit-post_tag_columns' , 'add_term_columns');
//追加されたカラムへの表示内容
function add_term_custom_column( $content, $column_name, $term_id ) {
if ( 'id' === $column_name ) {
$content = $term_id;
}
return $content;
}
add_filter( 'manage_category_custom_column', 'add_term_custom_column', 10, 3 );
add_filter( 'manage_post_tag_custom_column', 'add_term_custom_column', 10, 3 );
解説
カテゴリー・タグだけでなく、タクソノミーに共通して、manage_edit-{taxonomy}_columns
というフィルターフックでターム一覧テーブルのカラム(表の列)をカスタマイズできます。
加えて、manage_{taxonomy}_custom_column
というフィルターフックで、それぞれのカラムに表示する内容をカスタマイズすることができるようになっています。
つまり、
- カテゴリーとタグの一覧テーブルに「ID」という名前のカラム(表の列)を追加するためのコード
- その追加したカラムに実際にカテゴリー・タグのIDを出力するためのコード
という2段階の処理が必要になります。
前者のmanage_edit-{taxonomy}_columns
のカテゴリー・タグ版は以下の2つです。
- manage_edit-category_columns
- manage_edit-post_tag_columns
また、後者のmanage_{taxonomy}_custom_column
のカテゴリー・タグ版が以下の2つとなります。
- manage_category_custom_column
- manage_category_custom_column
これらのフック先にそれぞれ処理を加えているのが、上記のコードとなります。
add_term_columns()の中身について
array_merge()
やarray_slice()
を使用してなにやらごにょごにょしていますが、既存のテーブルの2列目にID用の列を加えたいだけの配列操作です。
一番最後尾の列に追加するのであれば、以下の処理で十分です。
function add_term_columns( $columns ) {
$columns['id'] = 'ID';
return $columns;
}
IDの昇順・降順でカテゴリー・タグの表をソートできるようにする方法
IDの表示に加え、ついでにソート機能もつけたいという場合は、以下のコードをfunctions.php
にコピペしてください。
// IDカラムでのソートを可能に
function add_term_sortable_columns( $columns ) {
$columns['id'] = 'ID';
return $columns;
}
add_filter( 'manage_edit-category_sortable_columns', 'add_term_sortable_columns' );
add_filter( 'manage_edit-post_tag_sortable_columns', 'add_term_sortable_columns' );