WordPress(ワードプレス)のサイト内検索で表示される結果から固定ページを除外する方法

はい、みなさんこんばんは。

今回は表題の通り、Wordpressでデフォルトでついている検索窓を使用して、サイト内検索を行った時に
表示される検索結果から固定ページを除外する方法をご紹介します。

ちょいちょい使いどころあると思うので、覚えておくと便利だと思います。

では早速ソースから!

見るべきところはや”search.php”です。
デフォルトは以下のようなループ処理になっているはずです。

<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
</ul>

上記のソースの前にquery_postsの処理を追記して、固定ページを表示しないようにします。

<?php
// 検索結果からページを除外する指示
	global $query_string; 
	query_posts($query_string . "&post_type=post");
?>

<?php if (have_posts()) : ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php endwhile; ?>
</ul>
<?php endif; ?>

<?php wp_reset_query(); ?>

以上で固定ページが表示されなくなります。

他にも検索フォーム自体をカスタマイズしたり、function.phpで対応する方法もありますが
上記の方法が一番おすすめなのでここでは紹介を省きたいと思います!

みなさんもぜひやってみてください~♪