WordPressをトップページで最新の投稿にしているが、特定のカテゴリを表示させたくない時

WordPressのトップページで「最新の投稿」を表示しているものの

割りと最近出くわした事例です。WordPressで構築した企業やお店のコーポレートサイトでは、トップページを「最新の投稿」ではなく、固定ページにしていることが大半です。しかし、中にはブログメインで運用したいとのご要望から、トップページに「最新の投稿」に設定しているケースがあります。

カテゴリが増えた時にページを出し分けたい

投稿が少ないうちはデフォルトの状態で全く問題ありませんが、数年運用して投稿の件数が増えてくると、カテゴリ分けしたいという要望が出てきます。
トップページでは「最新の投稿」を設定していますから、カスタマイズしない状態であれば、カテゴリに関係なく、全ての投稿が表示されますので、カスタマイズしてみることにしました。

以下がカスタマイズコードです。子テーマのfunctions.phpに追加します。

//特定のカテゴリの除外
function exclude_category( $query ) {
  if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'cat', '-5' );//マイナスをつけてカテゴリIDを除外する
  }
}
add_action( 'pre_get_posts', 'exclude_category' );

カテゴリIDの調べ方について

以下のページが参考になると思います。
https://website-fun.com/wp-id/

参考にしたページなど

http://wpdocs.osdn.jp/管理画面/表示設定

WordPressトップの一覧リストの中から特定のカテゴリを除外するカスタマイズ方法

お問い合わせはこちらから

南大阪を中心に活動しているエンジニアです。これまでの経験から、クライアント様のビジネス課題について一緒になって考え、課題解決のためにサポートさせていただきます。些細なご相談でも構いません。当方に期待することや課題、ご相談内容についてお聞かせください。原則として、24時間以内にご返信致します。