• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:wordpress 検索フォームと結果を同ページで)

wordpressで検索フォームと検索結果を同じページに表示する方法

このQ&Aのポイント
  • wordpressで検索フォームと検索結果を同じページに表示する方法について教えてください。
  • 私はwordpressで検索フォームを作成し、ユーザーが入力した情報を元に検索結果を表示したいと考えています。
  • 可能であればプラグインを使わずに、コードのみで実現したいです。どのような方法があるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • t_hirai
  • ベストアンサー率28% (222/788)
回答No.1
pino1961
質問者

お礼

t_hirai様 お礼が遅れて申し訳ありません。 まだ解決にはいたっておりませんが、紹介していただいたサイトを参考に何とかやれそうです。 ありがとうございました!

pino1961
質問者

補足

ご回答ありがとうございました。 こちらの理解力不足でうまくいきませんでした。 当方、PHPの知識があまり無いので、コピペで何とか作っています。 今回のアドバイスを受けて (1)search.phpは削除(念のためにindex.phpとsingle.php、page.phpも削除) (2)代わりに下記のようなコードでsearchpage.phpを作りました。 (Search Pageというテンプレート) <?php /* Template Name: Search Page */ ?> <div id="wrapper"> <form action="<?php echo home_url(); ?>" method="get"> <dl> <dt> お部屋のタイプ</dt> <dd> <?php wp_dropdown_categories(array( 'show_option_all' => '全てのタイプ' )); ?></dd> <dt> こだわり検索</dt> <dd> <?php $terms = get_terms('good'); foreach ($terms as $term): ?> <label> <input type="radio" name="good" value="<?php echo esc_attr($term->slug); ?>"> <?php echo esc_html($term->name); ?></label> <?php endforeach; ?> </select> </dd> <dt> キーワード</dt> <dd> <input type="text" value="" name="s" /> </dd> </dl> <input type="submit" value="この内容で検索!" /> </form> <h4 class="h4_search">★検索結果</h4> <div id="content"> <section> <?php if (is_search()) : ?> <?php endif; ?> <?php if (have_posts()) :?> <div class="postWrap"> <?php while (have_posts()) : the_post(); ?> <article id="post-<?php the_ID(); ?>"> <div class="search"> <header> <h5><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><span><?php the_title(); ?></span></a></h5> <a href="<?php the_permalink(); ?>"> <?php the_post_thumbnail(); ?></a> <?php echo mb_substr(get_the_excerpt(),0, 50);?> <a href="<?php the_permalink();?>">&emsp;…&nbsp;続きを読む</a> </header> </div> <?php endwhile; ?> </div> <?php endif; ?> <?php global $query_string; $query_args = explode("&", $query_string); $search_query = array(); foreach($query_args as $key => $string) { $query_split = explode("=", $string); $search_query[$query_split[0]] = $query_split[1]; } // foreach $search = new WP_Query($search_query); ?> <?php global $wp_query; $total_results = $wp_query->found_posts; ?> この「Search Page」のテンプレートで「検索」という固定ページを作成しました。 検索はできるのですが、検索結果は別のページに出てしまいます。 何しろPHPの知識があまり無いもので、どこが間違っているのかも分かりません。 もし、ご指摘いただければ有難いです。

すると、全ての回答が全文表示されます。

関連するQ&A