管理画面のカスタム投稿タイプの記事一覧ページで、カテゴリ(カスタムタクソノミ―)による絞り込みを行う。
元はこちら。
管理画面でカスタムタクソノミーを使って絞り込みが出来るようにする
大変役立ったのだけど、階層化されたタクソノミーの親子関係を維持して表示したかった。
自分で少し変えてみた。
ただし、作成した際に二階層目までしか必要なかったので、三階層目以降には未対応。
function add_post_taxonomy_restrict_filter() {
global $post_type;
if ( '作成したカスタム投稿タイプ' == $post_type ) {
echo '<select name="作成したカスタムタクソノミ―">';
echo '<option value="">カテゴリー指定なし</option>';
$terms = get_terms('作成したカスタムタクソノミ―', 'hide_empty=0');
foreach ($terms as $term) :
if ($term->parent == 0):
echo '<option value="' . $term->slug . '">' . $term->name . '</option>';
$parentID = $term->term_id;
$children = get_term_children( $parentID , '作成したカスタムタクソノミ―' );
if(!empty($children)):
foreach($children as $childID):
$child=get_term_by('id', $childID, '作成したカスタムタクソノミ―');
echo '<option value="' . $child->slug . '"> ' . $child->name . '</option>';
endforeach;
endif;
endif;
endforeach;
echo '</select>';
}
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );