【WordPress】管理画面のカスタム投稿一覧をタームで絞り込む機能を追加する方法

「カスタム投稿を追加したが、カスタムタクソノミーのターム(カテゴリー)別に絞り込む機能がないな….」

 

という悩みを解決できる記事を書きました。

 

デフォルトの投稿には、「日付」と「カテゴリー」で絞り込む機能が標準で装備されておりますが、カスタム投稿には、「日付」で絞り込む機能しか装備されておりません。

 

下記の機能です。

 

記事数が増えると重宝される機能ですので、クライアントにも標準で追加して納品するのがマストかと。

 

ということで今回は、「管理画面のカスタム投稿一覧をタームで絞り込む機能を追加する方法」を解説しますね!

管理画面のカスタム投稿一覧をタームで絞り込む機能を追加する方法

functions.php」に下記のコードを記述してください。

カスタム投稿タイプのスラッグ : 「news」
カスタムタクソノミーのスラッグ : 「cat_news」

という前提で話を進めます。

function add_custom_taxonomies_term_filter() {
  global $post_type;
  if ($post_type == 'news') { // カスタム投稿タイプのスラッグ
    $taxonomy = 'cat_news'; // カスタムタクソノミーのスラッグ
    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_custom_taxonomies_term_filter() {
  global $post_type;
  if ($post_type == 'カスタム投稿タイプのスラッグ') {
    $taxonomy = 'カスタムタクソノミーのスラッグ';
    wp_dropdown_categories(
      array(
        'show_option_all' => 'カテゴリー一覧',
        'orderby' => 'name',
        // 'show_count' => 1,
        'hide_empty' => 0,
        'name' => $taxonomy,
        'selected' => get_query_var($taxonomy),
        'hierarchical' => true,
        'taxonomy' => $taxonomy,
        'hide_if_empty' => 1,
        'value_field' => 'slug'
      )
    );
  }
}
add_action('restrict_manage_posts', 'add_custom_taxonomies_term_filter');

基本的な装備としましては、上記で足りるかと。

他の引数が気になる方のためにCodexのリンクを記載します。
テンプレートタグ/wp dropdown categories

今回は以上です。

SNSでもご購読できます。

コメントを残す

前の記事

次の記事