3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPress の管理画面にタグ絞り込み機能を追加する。

Posted at

WordPress の管理画面の投稿や固定ページ一覧は日付で記事を絞り込む機能はありますがタグで絞り込む機能が無いので、記事の数が増えてくると探すだけでも苦労します。

ということでタグで絞り込むためのコードを探してみたところドンピシャで紹介してくれているサイトを見つけました。

【寝ログ】WordPress管理画面の投稿一覧に「タグ」と「投稿者」での絞り込み機能を追加するカスタマイズ方法
[https://nelog.jp/custmuize-restrict-manage-posts]

//投稿一覧リストの上にタグフィルターと管理者フィルターを追加する
function custmuize_restrict_manage_posts_exsample(){
  global $post_type, $tag;
  if ( is_object_in_taxonomy( $post_type, 'post_tag' ) ) {
    $dropdown_options = array(
      'show_option_all' => get_taxonomy( 'post_tag' )->labels->all_items,
      'hide_empty' => 0,
      'hierarchical' => 1,
      'show_count' => 0,
      'orderby' => 'name',
      'selected' => $tag,
      'name' => 'tag',
      'taxonomy' => 'post_tag',
      'value_field' => 'slug'
    );
    wp_dropdown_categories( $dropdown_options );
  }
 
  wp_dropdown_users(
    array(
      'show_option_all' => 'すべてのユーザー',
      'name' => 'author'
    )
  );
}
add_action('restrict_manage_posts', 'custmuize_restrict_manage_posts_exsample');
 
//投稿一覧で「全てのタグ」選択時は$_GET['tag']をセットしない
function custmuize_load_edit_php_exsample(){
  if (isset($_GET['tag']) && '0' === $_GET['tag']) {
    unset ($_GET['tag']);
  }
}
add_action('load-edit.php', 'custmuize_load_edit_php_exsample');

こちらのサンプルコードではユーザーでの絞り込みもできるようになっていますが、不要であれば19~24行目の

  wp_dropdown_users(
    array(
      'show_option_all' => 'すべてのユーザー',
      'name' => 'author'
    )
  );

のコードは削除してもかまいません。

ちなみにこちら、絞り込んだ後にまた別のタグを選んで絞り込みをするとエラーが発生します。

どうやら post_type のパラメータが正しくないようで、自分の場合は固定ページでだけこの機能を使うので

wp_dropdown_categories( $dropdown_options );

の次の行に

echo '<input type="hidden" name="post_type" value="page">';

を追加して post_type のパラメータを設定することで解決できます。value の値は固定ページの場合は page、投稿の場合は 'post'、カスタム投稿タイプの場合はそれに応じた名前を設定することで対応ができます。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?