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
まとめ
the_search_query()
は、WordPressの検索結果ページで、ユーザーが入力した検索キーワードを表示するための便利なテンプレートタグです。
検索結果の視認性を向上させるために頻繁に使われます。
関連するget_search_query()
やis_search()
などと組み合わせることで、柔軟な検索ページの作成が可能です。検索フォームの改善や条件分岐と併用することで、より直感的なユーザー体験を提供できます。
コメント