[WordPress] 特定のカテゴリーの記事をトップページに表示させない方法

2017年も1月が高速で終わりそうな今日、何故か急にブログを更新する気になった。その理由は、このブログのデータを間違えて削除してしまい、復旧するのにお金を使ったため、どうせなら活用しようと一念発起したという。どうせ長続きしないだろうし、あえて大きな目標も立てないっす。

昨年、競馬の予想ブログだけはこつこつ書いたのだが。
http://bmbb.jp/category/keiba/

競馬以外の記事はというと、2016年3月まで遡らないといけない。そうすると、トップページが競馬記事ばっかりになってしまう。

さすがにこれではこのブログを継続させる気にはなれない。そこで考えたのが「トップページに特定のカテゴリーの記事を表示させない」こと。これに関して備忘録的に書いておく。

プラグイン「Advanced Category Excluder」を使ってみた

まず考えたのが、プラグインを使って制御させたい。検索すると、「Advanced Category Excluder」というプラグインがたくさんヒットした。

→ 特定のカテゴリーを表示しない方法![WordPress]

いいのがあるじゃねーかと思い、プラグイン新規追加を。

評価が★3つだし、最終更新が3年前。怪しさ満点だが、インストしてみる。

使い方は至って簡単で、表示させないページがトップページだけじゃなくて、色々選択できるのはいい。と思ったら。

予想はしていたが、PHPエラーが吐き出された。改造すればいいんだろうが、こんなことで手間はかけたくない。残念ながら、サヨナラ。

他のプラグインもみてみたら、どれも使えそうにないし、使うのも怖い。

function.phpにコードを追加

あんまりやりたくないんだが、最終的にはこれしかない。

テーマのfunction.phpに以下のコードを追加してやる。

特定のジャンルをトップページに非表示するphpコード

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '★★★' );
    }
}
add_action( 'pre_get_posts', 'exclude_category' );


★★★の部分は、表示させないカテゴリーIDを記述。

カテゴリーIDを調べるには、「管理画面」→「投稿」→「カテゴリー」の中で、カテゴリー名前をリンクオーバーすると、画面左下にURLが表示される。その中の「tag_ID=★★★」というのがそれ。

また、複数のカテゴリーを表示させたくない場合は、「★★★,○○○」のようにカンマ区切りをしてやればよい。

新星BMBB.jp誕生(笑)

function.phpに追加をして、トップページを確認すると。

競馬記事が消えて、成功しとる。なお、サイドバーの新着記事には、競馬記事がちゃんと表示している。

今回、たったこれだけの内容を書くのに、相当苦労した。文章を書いていないブランクが大きすぎた。やはり日常化しておく必要を痛感した。

新星「BMBB.jp」も出来たことだし、ぼちぼち頑張りまする。