サポート » 使い方全般 » 検索で該当記事が表示されない

  • 解決済 heppoko

    (@heppoko)


    下記ソースを使って検索フォームを作成しました。

    <form method="get" action="<?php echo home_url('/'); ?>">
    <input type="text" name="s" id="s" class="searchInput" value="<?php the_search_query(); ?>" placeholder="キーワードを入力">
    <input type="submit" id="searchBtn" value="">
    </form>

    しかし存在する記事内のキーワードを入力しても該当記事がゼロという結果になってしまいます。
    でも空白で検索すると全記事が表示されるので、フォーム自体は動作しているのかとは思うのですが、何が原因なのかが全く分からず困っております。

    なお、検索結果はsearch.phpを使用しております。

    ご教授いただければ幸いです。よろしくお願いいたします。

    • このトピックは heppokoが7 ヶ月、 1 週前に変更しました。
7件の返信を表示中 - 1 - 7件目 (全7件中)
  • CG

    (@du-bist-der-lenz)

    検索のウィジェットを使うのでなく、特殊な仕様なのですか。

    モデレーター Okamoto Hidetaka

    (@hideokamoto)

    get_search_form();を利用されてはいかがでしょうか?

    https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_search_form

    • この返信は7 ヶ月前に  Okamoto Hidetaka さんが編集しました。
    heppoko

    (@heppoko)

    ご回答ありがとうございます。
    どこか書き損じがあるのかも知れないと思い、
    「get_search_form();」
    を試したのですが、だめでした。

    空欄で検索したら全記事がでて、
    キーワードを入れたら該当記事なしになってしまいます。

    ますます原因が分からなくなってきました…

    oottll

    (@slime0099)

    search.phpの中に記述してあるループ文をここにコピペしてもらって良いですか?

    heppoko

    (@heppoko)

    search.php内のソースは下記になります。
    これも事前に書くべきものでしたね。すみませんです。

    <?php
    global $query_string;
    query_posts($query_string . '&posts_per_page=15&post_type=post');
    ?>
    <ul>
    <?php if(have_posts()) : ?>
      <?php while (have_posts()) : the_post(); ?>
        <li>
          <a href="<?php the_permalink(); ?>">
            <?php the_title(); ?>
            <?php the_post_thumbnail(); ?>
          </a>
        </li>
      <?php endwhile; ?>
    <?php else: ?>
      <div>
        <p>該当する記事がございません。</p>
      </div>
    <?php endif; ?>
    </ul>
    • この返信は7 ヶ月前に  heppoko さんが編集しました。
    • この返信は7 ヶ月前に  heppoko さんが編集しました。

    まず、query_posts を外しましょう。query_posts は ロードされた投稿データを再取得して上書きするモノです。テンプレート上での利用は想定されていないので、予期せぬ不具合を発生させます。

    参考:テンプレートタグ/query posts – WordPress Codex 日本語版

    また、検索結果ページのみで表示件数を変えたいなどの用途であれば、pre_get_posts を使うべきです。

    WordPressでページ送りが動かないのはどう考えてもquery_postsが悪い!【pre_get_posts、WordPressループまとめ】

    Toro_Unit様
    ご回答ありがとうございました。遅くなってしまってすみません。
    「query_posts」はやはりいろいろ問題がありそうですね。
    「pre_get_posts」というのは初耳だったので、一度調べてみようと思います。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「検索で該当記事が表示されない」には新たに返信することはできません。