2020.03.19

WordPress管理画面でカスタム投稿タイプをカスタムタクソノミーで絞り込む機能を実装する方法

こんにちは、webエンジニアのゾノ( @ozonosho )です。

今日のブログではWordPress管理画面でカスタム投稿タイプをカスタムタクソノミーで絞り込む機能を実装する方法を紹介したいと思います。

カスタムカスタム言ってて分かりづらいので、先に実装例を見てみましょう。

僕の運営するサイト『未来地図』では、通常のコラムの他にフリースクール情報や親の会情報などを管理するため、それぞれカスタム投稿タイプを用意しています。

また、それらのカスタム投稿タイプは都道府県ごとにアーカイブを作るために都道府県用のカスタムタクソノミーを紐づけています。

こういった際に、管理画面でフリースクール情報を閲覧するときに都道府県で絞り込む機能をつけたのが上記の実装例になります。

カスタム投稿タイプをカスタムタクソノミーで絞り込む機能を管理画面に実装する方法

実装は簡単で、下記のようなコードをfunctions.phpに追加いただければ実装できます。

function add_term_dropdown( $post_type ) {
  if($post_type == 'カスタム投稿タイプのスラッグ') {
    $term_slug = get_query_var('カスタムタクソノミーのスラッグ');
    wp_dropdown_categories(array(
      'show_option_all' => __('セレクトボックスの表記', 'my_theme'),
      'selected'        => $term_slug,
      'name'            => 'カスタムタクソノミーのスラッグ',
      'taxonomy'        => 'カスタムタクソノミーのスラッグ',
      'value_field'     => 'slug',
    ));
  }
}
add_action('restrict_manage_posts', 'add_term_dropdown', 10, 3);

たとえば冒頭で紹介した僕のサイトでの実装を例にすると、

セレクトボックスの表記:都道府県
カスタム投稿タイプのスラッグ:freeschool(フリースクール)
カスタムタクソノミーのスラッグ:area(都道府県)

という仕様なので、コードは下記のとおりになります。

function add_term_dropdown( $post_type ) {
  if($post_type == 'freeschool') {
    $term_slug = get_query_var('area');
    wp_dropdown_categories(array(
      'show_option_all' => __('都道府県', 'my_theme'),
      'selected'        => $term_slug,
      'name'            => 'area', //カスタムタクソノミーのスラッグ
      'taxonomy'        => 'area', //カスタムタクソノミーのスラッグ
      'value_field'     => 'slug',
    ));
  }
}
add_action('restrict_manage_posts', 'add_term_dropdown', 10, 3);

これだけでカスタム投稿タイプの管理画面に絞込機能を追加することができるのでぜひお試しください^^

おわりに

以上、今回の記事ではWordPress管理画面でカスタム投稿タイプをカスタムタクソノミーで絞り込む機能を実装する方法を紹介させていただきました。

当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。

あなたのサイトに理想の機能を実装!WordPressカスタマイズサービス

本サービスはあなたのWordPressサイトに理想の機能を実装するサービスとなります。 どのような機能・要望でも実現可能です! Wo......

→この記事を読む