フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

[wp] query_postsで検索結果から特定のカテゴリを含めないように指定する。

without comments

Magic Fieldsを使っていると必要な場面が多々あるのです。

Magic Fieldsを使って特例のエリアの更新をカテゴリをキーにしてその中の投稿で行う場合があるので、検索に引っ掛けたくないカテゴリや投稿が出てくる。そんな時。

記述方法

『category__not_in』のarrayに排除したいカテゴリIDを列挙(例:1,2,3,4)
『post__not_in』のarrayに排除したい投稿IDを列挙(例:5,6,7)

<?php query_posts(array('category__not_in' => array(1,2,3,4),'post__not_in' => array(5,6,7))); ?>

記述例

『posts_per_page』に表示しさせたい件数
『orderby』でID順か更新日順か等指定
『order』で降順/昇順を指定
『posts_per_page』に表示しさせたい件数を指定
『category__not_in』のarrayに除外したいカテゴリIDを列挙(例:1,2,3,4)
『post__not_in』のarrayに除外したい投稿IDを列挙(例:5,6,7)

<?php
//他のquery_postsが継承されてしまう為、カテゴリ指定をデフォルトに戻す
query_posts($query_string);
//『posts_per_page』に表示しさせたい件数
//『orderby』でID順か更新日順か等指定
//『order』で降順/昇順を指定
//『posts_per_page』に表示しさせたい件数
//『category__not_in』のarrayに除外したいカテゴリIDを列挙(例:1,2,3,4)
//『post__not_in』のarrayに除外したい投稿IDを列挙(例:5,6,7)
query_posts('posts_per_page=10&orderby=date&order=DESC&array('category__not_in' => array(1,2,3,4),'post__not_in' => array(5,6,7))');
?>

<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>

	〜 ここでループ 〜

<?php endwhile; ?>
<?php else : ?>
	<p>該当する記事がありませんでした。</p>
<?php endif; ?>
<?php
wp_reset_query();//最後に「query_posts」をリセット
?>