WordPress:管理画面の一覧ページにタグで絞り込む機能を追加する方法

WordPress:管理画面の一覧ページにタグで絞り込む機能を追加する方法

WordPressで管理画面の記事一覧画面には特定のカテゴリーで絞り込む機能がありますが、なぜかデフォルトでは実装されていないタグで絞り込む機能を追加する方法です。

タグで絞り込む機能の追加後イメージ

実装にはfunctions.phpに下記のように記述します。

functions.php

add_action( 'restrict_manage_posts', 'add_post_tag_filter' );
function add_post_tag_filter() {
  global $post_type;
  if ( $post_type == 'post' ) {
    wp_dropdown_categories( array(
      'show_option_all' => 'すベてのタグ',
      'orderby' => 'name',
      'hide_empty' => 0,
      'selected' => get_query_var( 'tag' ),
      'name' => 'tag',
      'taxonomy' => 'post_tag',
      'value_field' => 'slug',
    ) );
  }
}

add_action( 'load-edit.php', 'reset_post_tag_filter' );
function reset_post_tag_filter() {
  if ( isset( $_GET['tag'] ) && '0' == $_GET['tag'] ) {
    unset( $_GET['tag'] );
  }
}

絞り込み選択時のセレクトボックスは、カテゴリーリストを表示するときなどに使用するwp_dropdown_categories()で出力しているので、並びの変更ならorderby、投稿がないものは非表示にしたいならhide_emptyといったように、各引数の値を任意のものにすれば出力内容を変更できます。
最後にunset()を行なっている処理についてはもっと適した方法がありそうですが、「すベてのタグ」選択状態で検索を実行した際にうまく反映されない対策になります。


WordPressで管理画面に関するその他のカスタマイズは以下にまとめているので、興味ある方はこちらもご覧ください。

Close the search window,
please press close button or esc key.