MENU

the_search_query()

the_search_query() は、WordPressの検索結果ページで、ユーザーが入力した検索クエリを取得して表示するテンプレートタグです。主に検索結果の表示タイトルや見出しに使用されます。

目次

機能の説明

the_search_query() は、検索フォームで入力されたキーワードを取得し、そのまま出力します。検索結果ページ(search.php)で使うのが一般的です。

シンプルなコード例

<?php the_search_query(); ?>

現在の検索クエリをそのまま出力します。

使い方の解説

the_search_query() は、検索結果ページで検索キーワードを表示したいときに使います。主にタイトルや見出しで、ユーザーが入力したキーワードを表示し、検索結果の視認性を高めるのに役立ちます。echo 文が不要なため、出力が簡単です。

検索結果ページのタイトルにクエリを表示する例

<h1>「<?php the_search_query(); ?>」の検索結果</h1>

このコードは、ユーザーが入力した検索キーワードを検索結果のページタイトルに表示します。

表示例

「WordPress」 の検索結果

一緒に使うことが多い関連タグ

get_search_query()

get_search_query() は、現在の検索クエリを取得するが、出力しないテンプレートタグです。変数に代入したり、カスタマイズしたい場合に使われます。

$search_query = get_search_query(); 
echo '<h2>検索結果: ' . esc_html($search_query) . '</h2>';

検索キーワードを変数に格納し、esc_html() でエスケープ処理を行った後に表示します。

is_search()

is_search() は、現在のページが検索結果ページかどうかを判定するためのテンプレートタグです。

<?php if (is_search()) : ?>
    <p>「<?php the_search_query(); ?>」で検索した結果です。</p>
<?php endif; ?>

検索結果ページでのみ検索クエリを表示する条件分岐を設定しています。

追加情報を取得したい場合

検索結果数を取得したい場合

$wp_query->found_posts で、検索結果の件数を取得できます。

global $wp_query;
$found_posts = $wp_query->found_posts;
echo '<p>「' . esc_html(get_search_query()) . '」の検索結果は' . $found_posts . '件です。</p>';

検索クエリと結果の件数を組み合わせて表示します。

想定されるトラブル

検索クエリが表示されない

the_search_query() を検索結果ページ以外で使用している場合。

  • テンプレートファイル(search.php)内で使用することを確認する。
  • 条件分岐のis_search()を使って、検索結果ページでのみ表示する。

検索キーワードに不正なHTMLが含まれる

ユーザーがHTMLを含む検索キーワードを入力した場合、セキュリティリスクがあります。

  • esc_html() などのエスケープ関数で表示を安全にする。

Q&A

検索キーワードが空の場合にメッセージを出すことはできますか?

はい、get_search_query() でキーワードの有無を判定し、メッセージを出せます。

$query = get_search_query();
if ($query) {
    echo '「' . esc_html($query) . '」の検索結果';
} else {
    echo '検索キーワードが入力されていません。';
}

日本語の検索で意図した結果が表示されない場合、どうすればいいですか?

日本語の検索精度を上げるには、wp-multibyte-patch プラグインを使用するか、MySQL設定を見直すとよいでしょう。

検索フォームの内容をクリアしたい場合はどうしたらいいですか?

検索結果ページに「検索クリア」ボタンを設置することで対応できます。

<form method="get" action="<?php echo home_url('/'); ?>">
    <input type="text" name="s" value="<?php the_search_query(); ?>">
    <button type="submit">再検索</button>
    <a href="<?php echo home_url('/'); ?>">検索クリア</a>
</form>

まとめ

the_search_query() は、WordPressの検索結果ページで、ユーザーが入力した検索キーワードを表示するための便利なテンプレートタグです。

検索結果の視認性を向上させるために頻繁に使われます。

関連するget_search_query()is_search() などと組み合わせることで、柔軟な検索ページの作成が可能です。検索フォームの改善や条件分岐と併用することで、より直感的なユーザー体験を提供できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次