Web制作

【wordpress】特定のカスタム投稿のみ検索結果に表示させる方法

Written by o-saka

WORDPRESSのサイト内検索で特定のカスタム投稿タイプのみを検索結果に表示させる方法をご紹介します。

やりたいこと

  • ある検索フォームから特定のカスタム投稿タイプのみを検索結果に表示させたい
  • サイト内の全体の検索も残しておきたい

ソース

テンプレート.php

<form id="form" class="" action="<?php echo home_url(); ?>/" method="get">
<input name="s" type="text" placeholder="キーワードを入力"/>
<input type="hidden" name="post_type" value="【カスタム投稿タイプ名】">
<button type="submit">検索</button>
</form>

search.php

<?php
if ( !empty( $_GET[ 'post_type' ] ) ) {
global $query_string;
query_posts( $query_string . "&post_type=" . $_GET[ 'post_type' ] );
}
?>
<?php if(have_posts()): ?>
<?php while(have_posts()): the_post(); ?>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php else : ?>
<p>検索キーワードに該当する記事がありませんでした。</p>
<?php endif; ?>

いろいろ調べたのですがうまく動かず上記で動きました。もっとスマートの書き方がありそうですのであくまで参考までに。

この記事を書いた人

o-saka(@abiko41)

フリーランスでWEB作ったりロゴ作ったりしてます。
お仕事のご依頼等は下記フォームより承っております 。お気軽にお問い合わせください。

お問い合わせ