カスタム投稿一覧に「タクソノミー」絞り込み機能を追加する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

カスタム投稿一覧

カスタム投稿一覧には、投稿一覧のように「カテゴリー」や「タグ」のような絞り込み機能が表示されません(図1参照)。

そこで、カスタム投稿一覧に、タクソノミーで絞り込めるプルダウンを追加します。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードをfunctions.phpに追加します。

add_action('restrict_manage_posts', function () {
  global $typenow;

  // 投稿タイプpostは処理対象外
  if (empty($typenow) || $typenow === 'post') {
    return;
  }

  // 投稿タイプに紐づくタクソノミーを取得
  $taxonomies = get_object_taxonomies($typenow, 'objects');
  if (empty($taxonomies)) {
    return;
  }

  foreach ($taxonomies as $taxonomy) {
    // 選択中のタームを取得
    $selected = isset($_GET[$taxonomy->name]) ? $_GET[$taxonomy->name] : '';

    // プルダウンを出力
    wp_dropdown_categories([
      'show_option_all' => $taxonomy->labels->all_items,
      'orderby'         => 'name',
      'show_count'      => 0,
      'hide_empty'      => 0,
      'name'            => $taxonomy->name,
      'selected'        => $selected,
      'hierarchical'    => $taxonomy->hierarchical,
      'taxonomy'        => $taxonomy->name,
      'hide_if_empty'   => true,
      'value_field'     => 'slug',
    ]);
  }
});

さいごに

今回紹介した方法を使えば、カスタム投稿一覧でタクソノミーごとの絞り込みができ、投稿管理の作業効率を大幅に改善できます。
投稿数が増えても、必要な情報を素早く探し出せるため、日々の運用がぐっと快適になります。

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