マジカルスリー・だいすけのなりゆき長者ブログ

沖縄/大阪WEB広告・ホームページ制作・印刷物制作 マジカルスリー 「福」代表のブログ

*

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の事

Message

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

  関連記事

新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法

ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …

カスタムフィールドの値をURL指定して記事をソートする

WordPressは記事ソートや抽出が中々優秀でして、URLから指定してあげるこ …

GravatarでWordPressのアバターを作ろう

最近物忘れがヒドイ、だいすけです。 テーレッテレー!! ついこの前、ワードプレス …

テーマの自動アップデートがイヤな場合は

最近梅の花がとってもきれいに咲いてますね。 春の訪れを感じながら仕事に追われる「 …

アーカイブページでタームごとに記事一覧を出力する

カスタム投稿の記事一覧を出したい ターム名1(カスタム投稿の「カテゴリ名」のよう …

サイトに重大なエラーがありました。と出てきて顔面蒼白になる

WordPressを使っていると稀にこの事象に出くわします。 バックアップが運良 …

Lightbox系プラグイン「Easy FancyBox」

特に意識すること無くLightbox(ふわっと写真を別ウィンドウで表示する)を使 …

Advanced Custom Fieldsで作ったカスタムフィールドの画像をアイキャッチ画像にする

カスタムフィールドで投稿した画像を自動でアイキャッチ画像にしたかったのですが、A …

Sugar Events Calendar Lite 中国語化

以前のブログの再掲載です(なくなると困る記事なので・・・) Sugar Even …

WordPressで会員サイト的なものを作りたい

WordPressで会員サイト的なものを作る と言う題目で幾つか記事があったんで …