Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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'、カスタム投稿タイプの場合はそれに応じた名前を設定することで対応ができます。

hagiharamanabu
横須賀の隅っこでマークアップエンジニアやフロントエンジニアをしています。
http://gakuya.work/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした