同じ投稿タイプの中に沢山のカテゴリ、沢山の記事が存在し、目的の記事をすぐに探す事ができない。
あるカテゴリに該当する記事のみをWordPressの記事一覧画面で表示したい。
そんな時ありませんか?
今はなくとも、『WordPressの記事一覧で絞り込む機能を付ける方法』を覚えておけば、ページ数の多いサイトを制作する際にいつかきっと役に立つので是非覚えていってください。
目次
管理画面で絞り込み機能をつけたい。
今回やりたい事、実装するものを先に共有します。
今回やりたい事は、以下のgifのように、WordPressの管理画面にカテゴリ別に記事を絞り込むセレクトボックスを新たに追加し、絞り込みたいカテゴリを選択して絞込みボタンを押すことでそのカテゴリの値を持っている記事のみを表示するという機能の実装です。
絞り込み機能の作り方
このような絞り込み機能はfunctions.phpへコードを追加する事で実装する事が可能です。
functions.phpに以下のコードを追加します。
function my_add_filter() { global $post_type; if ( '投稿タイプ名' == $post_type ) { echo '<select name="タクソノミー名">'; echo '<option value="">タクソノミー指定なし</option>'; $terms = get_terms('タクソノミー名'); foreach ($terms as $term) { $slug = ( $_GET['タクソノミー名'] == $term->slug )? 'selected="selected" ' : ''; echo '<option value="'. $term->slug .'"'. $slug .'>'. $term->name .'</option>'; }; echo '</select>'; } }; add_action( 'restrict_manage_posts', 'my_add_filter' );
それぞれの環境に合わせるために『投稿タイプ名』『タクソノミー名』にその環境に適した値を入れる事で動作します。
仕組みは簡単です。
デフォルト機能の日付別の絞込み機能と同じselectボックスを生成するコードを書き、restrict_manage_postsに入れているだけです。
以上