はじめに

カスタム投稿一覧には、投稿一覧のように「カテゴリー」や「タグ」のような絞り込み機能が表示されません(図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',
]);
}
});
さいごに
今回紹介した方法を使えば、カスタム投稿一覧でタクソノミーごとの絞り込みができ、投稿管理の作業効率を大幅に改善できます。
投稿数が増えても、必要な情報を素早く探し出せるため、日々の運用がぐっと快適になります。

