WPで標準の検索フォームを使うと、ブログだけじゃなくて固定ページまでヒットしてしまうことがありますよね?
検索結果をブログだけにしたい!そんなときに使える簡単なハックをご紹介します。
検索結果のテンプレートファイル内(search.phpなど)で以下の行を探し、
if (have_posts()): while (have_posts()) : the_post(); ?>
メインループが始まるよりも前に$wp_queryオブジェクトの設定を変えてしまいます。
global $wp_query; $args = array_merge( $wp_query->query_vars, array( 'post_type' => 'post' ) ); query_posts( $args );
これで$wp_queryオブジェクトのpost_typeをpostに変更したので、固定ページやカスタム投稿タイプは表示されなくなりました。めでたしめでたし。