今回はWordPressで特定のカテゴリーを除外して投稿を表示させる方法をご紹介します。 カスタム投稿タイプを使ってないサイトで特定のカテゴリーの投稿を取得する機会がありました。
既存サイトでカテゴリーはこんな感じです。
├ コラム
│ ├ コラムカテゴリー1
│ ├ コラムカテゴリー2
│ ├ コラムカテゴリー3
│ ・
│ ・
│ ・
│
├ ニュース
├ インフォメーション
・
・
・
各カテゴリーのIDを調べる
まずはコラムとコラムカテゴリー以外のカテゴリーIDを調べます。カテゴリーIDを調べるのはこちらの記事が参考になります。 投稿IDとカテゴリーIDの確認 – WordPressの使い方と設定 – Webkaru
WordPressでカテゴリIDを取得する方法!カテゴリごとに背景色変えたいときなどに便利! | delaymania
特定のカテゴリーを除外して表示
除外するカテゴリーを指定して投稿を表示させます。<?php
// post_type= 投稿タイプ
// posts_per_page= 表示件数
// cat=除外するカテゴリーを指定
$column_posts = get_posts('post_type=post&posts_per_page=6&cat=-1,-2,-3');
?>
<?php
foreach ( $column_posts as $post ):
setup_postdata($post); ?>
<article>
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
</article>
<?php endforeach;
wp_reset_postdata(); ?>
cat=-カテゴリーID
cat=-1
特定のカテゴリーをだけを表示
逆に特定のカテゴリーだけの投稿を表示させます。<?php
// post_type= 投稿タイプ
// posts_per_page= 表示件数
// cat=表示するカテゴリーを指定
$column_posts = get_posts('post_type=post&posts_per_page=6&cat=1,2,3');
?>
<?php
foreach ( $column_posts as $post ):
setup_postdata($post); ?>
<article>
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
</article>
<?php endforeach;
wp_reset_postdata(); ?>