とあるサイトで通常の投稿にタクソノミーを追加したのですが、投稿一覧でその内容(ターム)が表示されたら便利だと思ってやってみました。
参考にしたのはこちらのサイト
上記では一つのタクソノミーだったので、複数追加するために下記のようにしました。
WordPressの管理画面に項目を追加
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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'); |
項目の中身を設定
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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のおかげか、一覧にはアイキャッチ画像も表示されていて、本当はアイキャッチ画像を一番左に持っていきたいなーと思ったのですが、ごにょごにょしてもうまくいかず。。新たな課題ができました。。
ひとまずタクソノミーの情報は表示されたので、良しとします!