WordPressの検索機能は、検索キーワードが空(未入力)の状態で検索した場合は全件表示される挙動になっていますが、それを空(未入力)の場合はその旨をちゃんと表示させる方法です。

検索キーワードが空(未入力)の状態で検索されたときにしっかりとその旨を伝えたい場合は、条件分岐とget_search_query()を利用して、検索結果を表示させるテンプレート(一般的にはsearch.php)へ下記のような形で記述します。

if ( empty( get_search_query() ) ) :
  // 検索キーワードがないとき
  echo '<p>検索キーワードが未入力です。</p>';
else :
  // 検索キーワードがあるとき
  if ( have_posts() ) :
    // 該当するエントリーがあるとき
    while ( have_posts() ) : the_post();
      get_template_part( 'template-parts/content' );
    endwhile;
  else :
    // 該当するエントリーがないとき
    echo '<p>検索キーワードに該当するエントリーはありません。</p>';
  endif;
endif;

それぞれコメントも入れていますが、このサンプルコードの場合は検索キーワードや検索結果の有無によって下記3パターンの表示を出し分けています。

  • 検索キーワードがないとき
  • 検索キーワードがあり 且つ 該当するエントリーがあるとき
  • 検索キーワードがあり 且つ 該当するエントリーがないとき

これであれば「そもそも記事がないのか」や「該当エントリーがないのか」もわかりやすくなるので、検索を多用するようなサイトを構築している場合には設定しておくとユーザーにも優しいと思います。