ジーニアスブログ – WEB制作会社ジーニアスウェブのお役立ちブログ

カスタム投稿の管理画面でカテゴリ(ターム)で絞り込みが出来るようにする方法

こんにちは。ジーニアスウェブのスギタです。

さて、WordPressの投稿を使用する際、
デフォルトの投稿では、カテゴリの絞り込みがあるのに、カスタム投稿ではその絞り込みがなくて、不便だなと感じたことはありませんか?

記事数が多くなってくると、ページをまたいで探さないといけなくなり不便ですよね。
そんなとき、functions.phpにちょっとした記述を足すだけで簡単に絞り込みが出来るようになります。
本日はそのご紹介です。

 

まずは管理画面の確認

標準の投稿一覧では、下図のようにカテゴリでの絞り込み機能がありますね。

しかし、カスタム投稿には、日付での絞り込みしかないのです…

これくらい、はじめからつけておいてほしいですよね…

 

functions.phpに記述しよう

それでは、早速作業をはじめましょう。

・カスタム投稿タイプ → product
・カスタムタクソノミー → product-cat

とした場合を例に挙げて、functions.phpに下記を記述します。

function add_post_taxonomy_restrict_filter() {
    global $post_type;
    if ( 'product' == $post_type ) {
        ?>
        <select name="product-cat">
            <option value="">カテゴリー指定なし</option>
            <?php
            $terms = get_terms('product-cat');
            foreach ($terms as $term) { ?>
                <option value="<?php echo $term->slug; ?>"><?php echo $term->name; ?></option>
            <?php } ?>
        </select>
        <?php
    }
}
add_action( 'restrict_manage_posts', 'add_post_taxonomy_restrict_filter' );

※更新前に、必ずファイルのバックアップをとることを忘れないでください。
サイトが見れなくなることもありますので作業は慎重に!

 

管理画面をもう一度

functions.phpを更新し、管理画面のカスタム投稿一覧を再度見てみましょう。
下図のように、セレクトボックスが表示されるようになりました!

 

さいごに

ちょっとした機能ですが、地味に便利なものではないでしょうか。
今回は、セレクトボックスでの絞り込みが出来る方法をご紹介いたしましたが、管理画面一覧にカテゴリをそのまま表示させる方法もあります。
それはまたの機会にご紹介できればと思います。

それでは、また。