最終更新日:2020.08.26
こんにちわ!ナコです。
WordPressで条件分岐をしていて、特定のカテゴリーだけ表示、特定のカテゴリーとそれ以外で表示は調べるとすぐ出てくるのですが、
特定のカテゴリーだけ除外する方法はなかなか見つけにくいかったのでメモです。
呼び出す前に宣言しちゃう
have_posts
という記事を取得するタグの前にquery_posts
で指定しちゃう方法です。
カテゴリーIDで除外
カテゴリーIDが3と5を除いたそれ以外の記事が表示されます。
コピー
<?php query_posts('cat=-3,-5'); ?>
<?php if(have_posts()) : ?>
テスト環境と本番環境でカテゴリーIDが違う場合とっても面倒なので、オススメしないです。
サイトが1つしかない場合は有り
サイトが1つしかない場合は有り
カテゴリースラッグで指定して除外
オススメ!
管理画面のカテゴリーページでそれぞれのカテゴリーにスラッグを追加します。
そのスラッグで振り分ける方法です。
カテゴリースラッグ「special」を除いたそれ以外の記事が表示されます。
コピー
<?php if(!in_category('special')) : ?>
// カテゴリースラッグ「special」以外のカテゴリーに属した記事のときの処理を書く
<?php enfif; ?>
この方法ならサーバーが変わってもいけるよ!オススメ
ID、スラッグごちゃまぜの条件でカテゴリーを指定して除外
複数条件をまとめたい場合はこのタグです。
コピー
<?php if(!in_category(array(9, 'special'))) : ?>
// カテゴリーIDが9、スラッグが「special」のいずれかのカテゴリーに属した記事のときの処理を書く
<?php enfif; ?>