とあるサイトで通常の投稿にタクソノミーを追加したのですが、投稿一覧でその内容(ターム)が表示されたら便利だと思ってやってみました。
参考にしたのはこちらのサイト
404 Not Found
上記では一つのタクソノミーだったので、複数追加するために下記のようにしました。
WordPressの管理画面に項目を追加
function add_column($columns){
global $post;
if($post->post_type =='post'){ // 投稿タイプがpostときのみ適用
$date_escape = $columns['date']; // 日付を退避
unset($columns['date']); // セットされている日付を外す
unset($columns['thumbnail']); // セットされている日付を外す
$columns['taxonomy1'] = 'タクソノミー1';
$columns['taxonomy2'] = 'タクソノミー2';
$columns['date'] = $date_escape; // 日付を最後に付けたいので再度設定
}
return $columns;
}
add_filter('manage_posts_columns','add_column');
項目の中身を設定
function inside_column($column_name){
global $post;
$tax_arr = array( 'taxonomy1', 'taxonomy2' );
if($post->post_type == 'post' && in_array($column_name, $tax_arr)){ // 投稿タイプがpostでカラムが$tax_arrに含まれる場合
$_tax = get_the_terms($post->ID, $column_name);
if(!empty($_tax)){
$out = array();
foreach($_tax as $d){
$out[] = '<a href="edit.php?post_type=post&'.$column_name.'='.$d->slug.'">'.$d->name.'</a>';
}
echo join(', ',$out);
}
}
}
add_action('manage_posts_custom_column','inside_column');
Simplicityのおかげか、一覧にはアイキャッチ画像も表示されていて、本当はアイキャッチ画像を一番左に持っていきたいなーと思ったのですが、ごにょごにょしてもうまくいかず。。新たな課題ができました。。
ひとまずタクソノミーの情報は表示されたので、良しとします!
