このページのもくじ
WordPressの基本の検索ファイル
WordPressはテンプレート階層の優先順位の高い順番にファイルを探して、 最初に見つかったテンプレートファイルを使ってページを表示します。WordPressの検索機能で使われるファイルは下記のようになっています。
検索フォームを表示⇒「searchform.php」
検索結果を表示⇒「search.php」なければ「index.php」
基本的な検索機能は下の手順で設置できます。
searchform.phpを作成
<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">
<label for="s" class="assistive-text">検索</label>
<input type="text" name="s" id="s" placeholder="検索" />
<input type="submit" value="検索" />
</form>
検索フォームを呼び出す
<?php get_search_form(); ?> <!-- 検索窓の表示 -->
検索結果ページ
<?php if ( have_posts() ) : ?>
<h1><?php printf( __( 'Search Results for: %s', 'altitude' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', 'search' ); ?>
<?php endwhile; ?>
<?php else : ?>
該当なし
<?php endif; ?>
今回は、基本の検索機能とは別に絞り込み検索機能を追加して、検索結果を別デザインで表示させたいので、その方法を調べてみました。
検索結果を表示するテンプレートを任意の○○○.phpファイルに指定するには
今回は、基本の検索とは別の検索機能を追加するので、検索の結果は「search.php」とは別デザインのテンプレートファイル「○○○.php」に表示させたい。
方法は、<form>タグの「action:」に表示させたいページのURLを入れるだけ。
//検索フォームの<form>タグ内
<form method="get" id="searchform" action="ここに表示させたいページのURLをいれる">
こんなに簡単なことだったとは。。。。
調べまくって、テストしまくって、最後の最後にたどり着いた答え。
コードの知識が浅いので、action は必ず action=”<?php bloginfo(‘url’); ?>”> と指定しなければ、WordPressでは上手く作動しないものだと思い込んでました。これで、サイト内検索をいろいろと追加していけそうです!