<pre>

 

管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示
function add_custom_column( $defaults ) {
$defaults[‘maindw’] = ‘ダウンロードカテゴリなど’; // 『maindw』はタクソノミースラッグ(複数設定可)
return $defaults;
}
add_filter(‘manage_dw_posts_columns’, ‘add_custom_column’); // ここの『dw』はカスタム投稿タイプスラッグ
function add_custom_column_id($column_name, $id) {
$terms = get_the_terms($id, $column_name);
if ( $terms && ! is_wp_error( $terms ) ){
$dw_links = array(); // ここの『dw』は変えなくてもOKだが、カスタム投稿タイプスラッグがおすすめ
foreach ( $terms as $term ) {
$news_links[] = $term->name;
}
echo join( “, “, $news_links );
}
}
add_action(‘manage_dw_posts_custom_column’, ‘add_custom_column_id’, 10, 2); // ここの『dw』はカスタム投稿タイプスラッグ

// 管理画面のカスタム投稿一覧にカテゴリー絞り込み 『dw』はカスタム投稿タイプスラッグ 『maindw』はタクソノミースラッグ(複数設定可)
function add_post_taxonomy_restrict_filter() {
global $post_type;
if ( ‘dw’ == $post_type ) {
?>

}
}
add_action( ‘restrict_manage_posts’, ‘add_post_taxonomy_restrict_filter’ );

// 管理画面のカスタム投稿一覧にカテゴリー絞り込み2*/
function add_custom_taxonomies_term_filter() {
global $post_type;
if ($post_type == ‘dw’) { // カスタム投稿タイプのスラッグ
$taxonomy = ‘download’; // カスタムタクソノミーのスラッグ
wp_dropdown_categories(
array(
‘show_option_all’ => ‘カテゴリー一覧’, // 自由に変更可(デフォルトの投稿に合わせております)
‘orderby’ => ‘name’, // タームを名前順で並べる(初期値: ID)
// ‘show_count’ => 1, // 各タームに属する投稿数を表示(初期値: 0/False(しない))
‘hide_empty’ => 0, // 投稿のないタームを表示する(初期値: 1/True(しない))
‘name’ => $taxonomy,
‘selected’ => get_query_var($taxonomy),
‘hierarchical’ => true, // タームを階層形式で表示する(初期値: 0/False(フラットに表示))
‘taxonomy’ => $taxonomy,
‘hide_if_empty’ => 1, // タームが一つもない場合は、ドロップダウンメニュー(絞り込み機能)を非表示(初期値: 0/False(表示))
‘value_field’ => ‘slug’
)
);
}
}
add_action(‘restrict_manage_posts’, ‘add_custom_taxonomies_term_filter’);

//もう一つ」//

function add_post_taxonomy_restrict_filter() {
    global $post_type;
    if ( 'blog' == $post_type ) {
        ?>
        <select name="blog_cat">
            <option value="">カテゴリー指定なし</option>
            <?php
            $terms = get_terms('blog_cat');
            foreach ($terms as $term) { ?>
                <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
            <?php } ?>
        </select>
        <?php
    }
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );

3行目【’blog’ == $post_type】
→カスタム投稿タイプを指定します。この場合は「blog」

5行目【select name=”blog_cat”】
→タクソノミーを指定します。この場合は「blog_cat」

6行目【カテゴリー指定なし】
→プルダウンのデフォルト値です。

8行目【$terms = get_terms(‘blog_cat’);】
→タクソノミー「blog_cat」のタームを呼び出します。

9行目 呼び出したタームを「foreach」で回します。

16行目 フックする場所は restrict_manage_posts でOKです。

これで、カスタム投稿タイプ「ブログ」の管理画面に絞り込み機能が表示されます。

 

複数のカスタム投稿タイプに設定する場合

 

function add_post_taxonomy_restrict_filter() {
    global $post_type;
    if ( 'blog' == $post_type ) {
        ?>
        <select name="blog_cat">
            <option value="">カテゴリー指定なし</option>
            <?php
            $terms = get_terms('blog_cat');
            foreach ($terms as $term) { ?>
                <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
            <?php } ?>
        </select>
        <?php
    }
    else if ( 'diary' == $post_type ) {
        ?>
        <select name="diary_day">
            <option value="">カテゴリー指定なし</option>
            <?php
            $terms = get_terms('diary_day');
            foreach ($terms as $term) { ?>
                <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
            <?php } ?>
        </select>
        <?php
    }
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );

 

<pre>