管理画面の一覧に、タクソノミを表示してみました。
タイトルだけだと、どのタクソノミで登録したかデータの判断がつかなくなりそうな時に
役に立つかと思います。
以下のコードは、タクソノミを2つ一覧に表示するコードのサンプルです
【post-type】【column名1】【column名2】を、実装環境に合わせて、
function.phpに書けば一覧に項目が追加されます。
//**************************************************************************
//投稿画面にタクソノミを表示させる
//**************************************************************************
function manage_【post-type】_columns($columns) {
unset($columns[‘tags’]);
unset($columns[‘comments’]);
global $post;
if ( $post->post_type == ‘slideimg’ ) {
$date_escape = $columns[‘date’]; // 登録日付は位置を変えて表示させるのでいったん避難
unset($columns[‘date’]); // 一覧から登録日付のカラムを消す
$columns[‘【column名1】’] = ‘カラムその1’;
$columns[‘【column名2】’] = ‘カラムその2’;
$columns[‘date’] = $date_escape; // ここで戻すと日付が一覧の最後に表示される
}
return $columns;
}
add_filter( ‘manage_posts_columns’, ‘manage_【post-type】_columns’ );
//**************************************************************************
// 新規追加したカスタムタクソノミの列で、タームを取得してリンクを作って表示
//**************************************************************************
function inside_【post-type】_column( $column_name ) {
global $post;
if ( $post->post_type == ‘【post-type】’ && $column_name == ‘【column名1】’ ) {
$target = get_the_terms($post->ID, ‘【column名1】’);
if ( !empty($target) ) {
$out = array();
foreach ( $target as $d ) {
$out[] = ‘<a href=”edit.php?district=’ . $d->slug . ‘”>’ . esc_html(sanitize_term_field(‘name’, $d->name, $d->term_id, ‘district’, ‘display’)) . ‘</a>’;
}
echo join( ‘, ‘, $out );
} else {
echo ‘指定無し’;
}
}
if ( $post->post_type == ‘【post-type】’ && $column_name == ‘【column名2】’ ) {
$target = get_the_terms($post->ID, ‘【column名2】’);
if ( !empty($target) ) {
$out = array();
foreach ( $target as $d ) {
$out[] = ‘<a href=”edit.php?district=’ . $d->slug . ‘”>’ . esc_html(sanitize_term_field(‘name’, $d->name, $d->term_id, ‘district’, ‘display’)) . ‘</a>’;
}
echo join( ‘, ‘, $out );
} else {
echo ‘指定無し’;
}
}
}
add_action( ‘manage_posts_custom_column’, ‘inside_【post-type】_column’ );
タクソノミ以外にも、カスタムフィールドも表示できます。
ソートの機能も追加できるようですが・・・まだ上手くいってません。
ソートは引き続き試行錯誤してみますので、うまくいったらここでご報告します。