WordPressでカテゴリーで記事を絞り込む(管理画面)


ワードプレスのテーマtwentytwentyを基盤に、管理画面の投稿一覧ページにおいて、投稿をカテゴリーで絞り込めるようにする機能の実装を行ったので、備忘録的にこの記事を残す。

環境情報

PHP:version 7.3.12
WordPress:version 5.5.3
WPテーマ:twentytwenty

作業

今回は投稿一覧ページにカテゴリーを表示させて、絞り込みできるようにしようと思います。
下記のfunctions.phpの任意の場所に追記します。

functions.php
function my_add_filter() {
global $post_type;
    if ( 'news' == $post_type ) {
    ?>
    <select name="tax_news">
        <option value="">タクソノミー指定なし</option>
        <?php
        $terms = get_terms( 'tax_news' );
        foreach ( $terms as $term ) { ?>
        <option value="<?php echo $term->slug; ?>" <?php if ( $_GET['tax_news'] == $term->slug ) { print 'selected'; } ?>><?php echo $term->name; ?></option>
        <?php } ?>
    </select>
    <?php
    }
}
add_action( 'restrict_manage_posts', 'my_add_filter' );


こんな感じにカテゴリーが表示され、絞り込みができるようになりました。
newsやtax_newsなどは、カスタム投稿やタクソノミーを作成したときのものを入力してください。