WordPressの検索欄が未入力で全件表示してしまう件
2016/09/09
間違えて空欄で検索した時に全件表示・・・。
バグでもエラーでもないんですがなんかしっくり来ません。
空欄であれば0件表示かつ「検索条件が入力されていません。」などと言ってほしいもの。
これって日本人的な発想なのかな?
解決法が下記のページ(Web制作・運用Tipsアーカイブ様)で紹介されていたので抜粋いたします。
http://weback.net/wordpress/690/
【以下記事の抜粋です】
検索条件が未入力で検索をかけると、たとえsearch.phpが存在していても、index.phpを呼び出してしまいます。
その場合でも、search.phpを表示させるには、template_redirectというアクションフックを使い、functions.phpに以下のように記述します。
// 検索条件が未入力時にsearch.phpにリダイレクトする function set_redirect_template(){ if (isset($_GET['s']) && empty($_GET['s'])) { include(TEMPLATEPATH . '/search.php'); exit; } } add_action('template_redirect', 'set_redirect_template');
なお、検索条件未入力時には、全件が検索結果となります。
そのケースではメッセージだけを表示し、検索結果を表示しないようにするには、search.phpに条件を追加する必要があります。
以下は、その条件を追加した記述例です。
<?php if (isset($_GET['s']) && empty($_GET['s'])) { ?> <p>検索条件が入力されていません。</p> <?php } else { ?> <?php if(have_posts()): ?> <?php while(have_posts()): the_post(); ?> <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php endwhile; ?> <?php else : ?> <p>検索条件にヒットした記事がありませんでした。</p> <?php endif; ?> <?php } ?>
関連記事
-
-
WordPressで記事を取得、ループしたいときに-その2
WordPressで記事を取得したいんだけど・・・ WordPressで記事を取 …
-
-
.htaccessに最低限設定しておいたほうが良いこと
簡単で結構効果のあるセキュリティとして.htaccessの設定がありますが、最低 …
-
-
WordPressで記事のカルーセルスライダー(jQuery的なスライドショー)
WordPressがそれなりにいじれると分かってから、嫁様の私への”こき使いっぷ …
-
-
Sugar Events Calendar Lite 中国語化
以前のブログの再掲載です(なくなると困る記事なので・・・) Sugar Even …
-
-
WordPressのページを印刷しようとするとスタイルが崩れる
WordPressのページを印刷しようとするとガタ崩れする時があると思います。 …
-
-
子カテゴリに親カテゴリのテンプレートを引き継がせる
WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …
-
-
WordPressで勝手に画像リサイズされる
いつもの防備録です。 本当に間抜けな話なんですが、これってほぼ間違 …
-
-
嫁の人用:WordPressで記事を取得、ループしたいときに-その1
WordPressの制御部分の基本です。 主にメインループの事を描かせていただき …
-
-
ワードプレスのサイト引越し時に500エラー
毎度おなじみのワードプレス備忘録です。 表題の通り、よくある(よくあってほしくな …
-
-
Redirectionプラグイン:REST APIの検索で止まる
久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …