WordPress管理画面の投稿一覧には以下のような投稿の絞り込み機能があります。
デフォルト状態だと、以下のように日付やカテゴリー一覧で投稿を「絞り込み検索」することができます。
今回は、Wordpress管理画面の投稿一覧に「日付」「カテゴリー」に加えて、「タグ」と「投稿者」の絞り込み機能を追加するカスタマイズです。
カスタマイズを行うと管理画面の投稿一覧上に以下のような機能が追加されるようになります。
「タグ重視で投稿管理」する場合や「投稿者の多いブログメディア」向けのカスタマイズかと思います。
目次
主な手順
今回のカスタマイズに必要な主な手順は以下です。
- functions.phpにコードを追加する
コード内容などを気にせずに機能さえ実装できれば良い場合は、functions.phpへのコピペ一発で機能追加することができるので比較的簡単かと思います。
functions.phpにコードを追加する
今回のカスタマイズを実装するには、functions.phpに以下のコードを貼り付けるだけです。
//投稿一覧リストの上にタグフィルターと管理者フィルターを追加する 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');
コードは、フォーラムにてTechNoteさんに教えていただいたものを使わせていただきました。
タグなどをドロップダウンリストでなくて、テキストボックスに入力した文字列で絞り込みをする場合は、以下の方法などが参考になるかと思います。
参考 WordPressの投稿一覧でタグのフィルタリングを追加する | Simple Colors
動作確認
functions.phpにコードを追加したらWordpress管理画面の投稿一覧に移動して、機能がちゃんと表示されているか動作確認を行います。
例えば、以下のようにタグや投稿者名を選択して「絞り込み検索」ボタンを押します。
すると、「タグ」と「投稿者(ユーザー)」で指定した投稿のみが表示されます。
まとめ
こんな感じで、Wordpress管理画面の絞り込み機能に手軽に「タグ」と「投稿者」で抽出できる機能を追加することができます。
基本的にはデフォルトの「日付」と「カテゴリー」のみの抽出でも十分かもしれません。
けれど、「カテゴリーがメインではなく、タグで投稿管理している」なんて場合や、「多くの投稿者がいるメディアブログなどを運営している」なんて場合は、管理画面上での過去記事探しが多少はかどるかもしれません。