WordPressで記事を執筆していると
- 投稿一覧に記事が溜まって見にくくなってしまう
- 昔に書いた記事が埋もれてしまう
- タグづけした記事を忘れてしまった
という事があると思います。
そんな時複数の条件で絞り込めたらすぐに目当ての記事を見つけ出す事ができるのですが、WordPressには「日付、カテゴリー」の2つしか絞り込める条件がありません。
そこで、今回は「タグ、投稿者」の条件でも絞り込める方法を解説していきたいと思います。
これらができるだけで管理画面上で記事を探すのがとても楽になるので是非最後までついてきてくださいね!
- 管理画面の投稿一覧で「タグ、投稿者」で記事を絞り込む事ができるようになる
- 管理画面で記事を探すスピードが速くなる

プログラミング学習でこのような経験はありませんか?
- 目標に向けて何を学べば良いかわからない
- 調べても解決策が見つからない
- 現場レベルのスキルが身につくのか不安
これらの悩みは、学習環境を整えることで全て解決することができます。
ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。
- なんでも相談できる専属メンター
- いつでも技術相談ができるプロ講師
- 元IT企業CTO監修のカリキュラム
条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。
少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。
今回作りたいもの
まずは、今回作成するものを確認していきます。
投稿一覧の初期表示
まずは投稿一覧を変更する前の初期表示を確認します。
- 日付
- カテゴリー
でしか絞り込む事ができませんね!
修正後の投稿一覧
修正した後の投稿一覧を確認します。
- 日付
- カテゴリー
- タグ
- ユーザー
新たに「タグ、ユーザー」で絞り込むことができるようになってますね!
それでは早速実装していきましょう。
実装
今回はテーマを修正することになるので、修正するファイルはfunctions.php
となります。
外観 > テーマエディターよりエディタへと移動します。
※知見がある方は、外部のテキストエディタで編集することも可能です。
サイドバーよりfunctions.php
をクリックします。
functions.phpを編集できるようになったら次へ進みます。
投稿一覧を「タグ」で絞り込む機能を実装
/* 投稿一覧絞り込み用 */
//投稿一覧リストの上にタグフィルターを追加する
function narrowing_down_posts(){
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 );
}
}
add_action('restrict_manage_posts', 'narrowing_down_posts');
//投稿一覧で「全てのタグ」選択時は$_GET['tag']をセットしない
function narrowing_down_posts_all_tag(){
if (isset($_GET['tag']) && '0' === $_GET['tag']) {
unset ($_GET['tag']);
}
}
add_action('load-edit.php', 'narrowing_down_posts_all_tag');
こちらをfunctions.php
ファイルの末尾に書き込みます。
ファイルを更新して表示を確認してみましょう。
投稿一覧を「タグ」で絞り込む機能を確認する
このように「全てのタグ」と表示されていれば実装できています!
それでは次にユーザーで絞り込む機能を実装します。
投稿一覧を「ユーザー」で絞り込む機能を実装
/* 投稿一覧絞り込み用 */
//投稿一覧リストの上にタグフィルターと管理者フィルターを追加する
function narrowing_down_posts(){
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', 'narrowing_down_posts');
//投稿一覧で「全てのタグ」選択時は$_GET['tag']をセットしない
function narrowing_down_posts_all_tag(){
if (isset($_GET['tag']) && '0' === $_GET['tag']) {
unset ($_GET['tag']);
}
}
add_action('load-edit.php', 'narrowing_down_posts_all_tag');
新しく「wp_dropdown_users
」という関数を追加しました。
それでは投稿一覧の表示を確認してみます。
投稿一覧を「ユーザー」で絞り込む機能を確認する
全てのユーザーと表示されていれば実装は完了です。
機能を確認する
それでは今まで実装した「タグ、ユーザー」 での絞り込み機能が正しく動くかどうかテストしてみます。
- 全てのタグから、任意のタグを選択
- 全てのユーザーから、任意のユーザーを選択
- 絞り込みをクリック
それでは結果を確認します。
このように絞り込んだ内容と同じ記事だけが表示されましたね!
最後に今回実装したソースコードに関して解説していきます。
コードの解説
それでは今回実装したコードを解説していきます。
narrowing_down_postsの解説
1番最初に記述している関数「narrowing_down_posts」では下記2つのことを指示しています。
- "タグ"一覧のドロップダウンを作成
- "ユーザー"一覧のドロップダウンを作成
それぞれ下記の関数により、ドロップダウンの内容を作成しています。
- wp_dropdown_categories( カテゴリーのドロップダウンに入れる内容を指定した配列);
- wp_dropdown_users(ユーザーのドロップダウンに入れる内容を指定した配列);
add_action('restrict_manage_posts', 'narrowing_down_posts');の解説
こちらの関数では先ほど作成したドロップダウンをカテゴリー一覧の隣に表示されるような指示を出しています。
restrict_manage_postsのフック利用を詳しく知りたい方はこちらからご確認ください。
add_action('load-edit.php', 'narrowing_down_posts_all_tag');の解説
こちらではload-edit.phpに記述されている内容が実行される際に「narrowing_down_posts_all_tag」も実行されるように指示しています。
絞り込みクリック時に「全てのタグ」が選択されていたら、タグは無視してね!という事が書いてあります。
WordPressを学習中の方へ
WordPressを学習していて、このように思ったことはありませんか?
- フリーランスとして「現場で使える」知識やスキルを身につけたい
- 仲間と一緒に「楽しく」学びたい
- 周りと差をつけられるように「効率的に」学びたい
- WordPressだけでなくデザインも勉強して「ハイレベル」なWebサイトを作りたい
プログラミングスクールZeroPlusでは講師が全員フリーランスとしての活動経験があり、ハイレベルな内容をわかりやすく学ぶことができます。
また、ZeroPlusは生徒同士のコミュニケーションが盛んで、仲間とともにやり切ることができるスクールです。アットホームな雰囲気で、入塾後の挫折率は極めて低くなっております。
実際に生徒さんがコミュニケーションを取られている様子はTwitterで確認いただけます。ぜひこちらから覗いてみてくださいね…!
ここまででZeroPlusに興味を持ってくださった方は、ぜひオンラインの無料相談にお申し込みください。皆様のプログラミング学習やキャリアに関するお悩みを、一緒に解消する時間になればと思います。
また、1ヶ月完結型のプログラミングキャンプ「ZeroPlus Gate」では1日10分の学習でWeb制作の基礎を本格的に学ぶことができます。
リリースを記念して期間限定で無料キャンペーンを行っています。
こちらのZeroPlus Gate公式サイトより皆様のお申し込みをお待ちしております。
サイト内問い合わせフォームより、簡単に受講することができます。
また、公式LINEではZeroPlus Gateに関する最新情報やWeb制作に役立つ知識を配信しています。下記QRよりご登録ください。

プログラミング学習でこのような経験はありませんか?
- 目標に向けて何を学べば良いかわからない
- 調べても解決策が見つからない
- 現場レベルのスキルが身につくのか不安
これらの悩みは、学習環境を整えることで全て解決することができます。
ZeroPlus Gateでは、30日間無料で最適な学習環境を提供しています。
- なんでも相談できる専属メンター
- いつでも技術相談ができるプロ講師
- 元IT企業CTO監修のカリキュラム
条件なしでこのレベルの環境を無料で提供しているのはZeroPlus Gateだけです。
ただし、無料サービスの提供には参加者の数に制限があります。
少しでも興味がある方は、以下のリンクからサービスの詳細をご覧ください。