管理画面の投稿一覧にタクソノミーの列を追加する

WordPress

とあるサイトで通常の投稿にタクソノミーを追加したのですが、投稿一覧でその内容(ターム)が表示されたら便利だと思ってやってみました。

参考にしたのはこちらのサイト

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のおかげか、一覧にはアイキャッチ画像も表示されていて、本当はアイキャッチ画像を一番左に持っていきたいなーと思ったのですが、ごにょごにょしてもうまくいかず。。新たな課題ができました。。

ひとまずタクソノミーの情報は表示されたので、良しとします!

タイトルとURLをコピーしました