検索バーで固定ページを検索対象からはずす

get_search_form()は、オリジナルの検索フォームやWordPress標準の検索フォームを表示してWordPressのサイト内検索に有効にするための関数で、簡単にサイト内検索が有効にできる便利なものだけど。
 

<form role="search" method="get" id="searchform" class="searchform" action="<?php echo home_url( '/' ); ?>">
<div>
<label class="screen-reader-text" for="s">検索:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="検索" />
</div>
</form>

 
これだけのものを出しているだけ。

で、ココで問題。
いろいろググってみたところ、「投稿だけを検索対象とする」にはfunctions.phpに呪文を書けばOK!となっているのだけど、これ書いちゃうと、固定ページが表示されなくなってしまった。
ヲィヲィ。

というわけでさらに探すと。
関数リファレンスにあった!答えが!

送信される唯一のパラメータは s で、現在の検索クエリの値を持ちます。しかしいろいろな形に検索クエリを変更できます。例えば検索結果に投稿だけを(固定ページ等を除外して)表示したければ、下記をフォームに追加します:

<input type="hidden" value="post" name="post_type" id="post_type" />

 
とどのつまり、get_search_form()を使わんで、検索バーだしゃいいじゃん!

<form role="search" method="get" id="searchform" class="searchform" action="<?php echo home_url( '/' ); ?>">
<div>
<label class="screen-reader-text" for="s">検索:</label>
<input type="text" value="" name="s" id="s" />
<input type="submit" id="searchsubmit" value="検索" />
<input type="hidden" value="post" name="post_type" id="post_type" />
</div>
</form>

 
というわけで、コレ↑をテーマに直接カキコ。
はい、無事投稿だけの検索バーが完成♪


コメントを残す

メールアドレスが公開されることはありません。* が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)