WordPressで特定のカテゴリーをfunction.phpやWPCodeを使って非表示にする方法

こんにちは。

WordPressを長く使っていると今はもう使っていないカテゴリーが一覧に出てしまって膨大なカテゴリーがページに出てしまうことがあるかと思います。
私も長く運用してしまった結果もう使わなくなってしまったカテゴリーや、すでに情報が古くなっているカテゴリーなどがあるためカテゴリーを削除するのではなく一時的に非表示にしたいと思いました。
そのようなときにfunctions.phpに貼り付けるだけで実現可能な便利なコードを紹介いたします。また WPCodeというWordPressプラグインを使用するとテーマの functions.php を汚すことなく特定のカテゴリーのみを非表示にすることが出来ます。テーマの更新などにも強くなるためこちらの方法でも良いと思います。
それでは早速紹介していきます。

functions.phpを使用する方法

それでは早速コードを紹介していきます。
以下はウィジェットに表示したカテゴリーを非表示にする方法です。事前にカテゴリーIDを取得しておく必要があります。

add_filter( 'widget_categories_args', 'widget_categories_args_filter' );

function widget_categories_args_filter( $cat_args ) {
    $exclude_arr = array( 2, 3 ); // ここにカテゴリーIDを入力する

    if( isset( $cat_args['exclude'] ) && !empty( $cat_args['exclude'] ) )
        $exclude_arr = array_unique( array_merge( explode( ',', $cat_args['exclude'] ), $exclude_arr ) );
    $cat_args['exclude'] = implode( ',', $exclude_arr );
    return $cat_args;
}

WPCodeを使用する方法

それでは次にWPCodeを使うパターンを紹介します。
新しいスニペットを追加して上で紹介したコードを挿入するのでWordPressの管理画面から『+ Add Snippet』をクリックしましょう。

次の画面で新しいスニペットを追加するので「Add Your Custom Code」と書かれている部分の『Use snippet』をクリックしましょう。

use_snippet

そうすると以下のような画面が出てくるので下の画像の赤枠部分を変更していきましょう。
まず、「Save Snippet」の横にあるトグルを青色に変更しておきましょう。これはこのスニペットを有効にするかどうかの設定で青色にしておかないと有効にならないのでまずは有効にしておきましょう。
その後は下のほうにタイトルを入力しましょう。今回は特定のカテゴリーを非表示にするスニペットを追加するので『特定のカテゴリーを非表示にする』と入力しています。他に希望のタイトルがあればそれを入力しましょう。
これから入力するコードはPHPなのでCode TypeはPHP Snippetにしましょう。
Code TypeをPHPにしたら下のほうのコードに上のコードを入力します。

custom_snippet1

その後は下にスクロールして、LocationをRun Everywhereにしましょう。全ページで実行したいためこの設定にしています。
ここまで設定出来たらSave Snippetをクリックして保存しましょう。

custom_snippet2

これで特定のカテゴリーを非表示にすることが出来ました!

終わりに

上記の設定をすることでウィジェットの特定のカテゴリーを非表示にすることが出来るようになりました。
functions.phpに追記する方法とWPCodeを使って行う方法の2種類を紹介いたしました。
特にWPCodeを使用した方法は今回以外のコードを任意の場所で実行させるためにも便利なプラグインなため、もし他にこんな方法で利用しているよ、みたいなのがあれば教えていただければ幸いです。