get_search_query()
は、WordPressの検索ページで現在の検索キーワードを取得するためのテンプレートタグです。
ユーザーが検索フォームに入力した内容を取得して表示するのに使われます。
機能の説明
get_search_query()
は、検索ページにおいて現在の検索クエリを取得するためのテンプレートタグです。
例えば、検索結果ページに「〇〇の検索結果」という見出しを表示する際に利用されます。フォームからの入力やクエリパラメータを取得して、その値を動的に表示することができます。
シンプルなコード例
echo get_search_query();
出力例
WordPress
検索結果ページで「WordPress」という検索キーワードが入力されていた場合、このコードはそのキーワードを表示します。
使い方の解説
get_search_query()
は、is_search()
関数と一緒に使用されることが多いです。この組み合わせで検索ページでのみクエリを表示するように条件を設定するのが一般的です。検索結果ページやタイトルにユーザーが検索したキーワードを表示することで、UXの向上が期待できます。
検索ページで検索クエリを表示する例
if (is_search()) {
echo '「' . get_search_query() . '」の検索結果';
}
このコードは、検索ページに「〇〇の検索結果」という見出しを表示します。
HTMLフォームにクエリを反映する例
<form method="get" action="<?php echo esc_url(home_url('/')); ?>">
<input type="text" name="s" value="<?php echo get_search_query(); ?>" />
<button type="submit">検索</button>
</form>
このコードは検索フォーム内に、過去の検索クエリを自動的に反映させます。ユーザーが以前検索した内容をフォームに保持して再利用できるようにしています。
一緒に使うことが多い関連タグ
is_search()
このテンプレートタグは、現在のページが検索結果ページかどうかを判定するために使います。
if (is_search()) {
echo '検索ページにアクセスしています。';
}
is_search()
を使って、現在のページが検索結果ページであるかを判定し、特定の処理を実行できます。
get_search_query()
と is_search()
の組み合わせ
if (is_search()) {
echo '「' . get_search_query() . '」の検索結果が表示されています。';
}
このコードは、検索ページで現在の検索クエリに基づいた動的な見出しを表示します。
追加情報を取得したい場合
検索クエリの値を加工したり、特定の条件を加えたい場合に、他のWordPressテンプレートタグと組み合わせて使用します。
get_search_form()
で検索フォームを取得
get_search_form();
検索フォームのHTMLを出力します。デフォルトの検索機能をそのまま使用したい場合に便利です。
想定されるトラブル
検索結果が表示されない
テーマにsearch.php
が存在しない、または正しく実装されていない可能性があります。
解決策
テーマディレクトリにsearch.php
を追加するか、index.php
で検索結果ページの表示を制御します。
日本語クエリがエンコードされる
日本語の検索キーワードがURLでエンコードされてしまうことがあります。
解決策
urldecode()
関数を使ってデコードします。
$search_query = get_search_query();
echo urldecode($search_query);
Q&A
まとめ
get_search_query()
は、検索結果ページで現在の検索クエリを取得し、表示するための便利なテンプレートタグです。
is_search()
や get_search_form()
と組み合わせて使うことで、検索機能を効果的に拡張できます。
また、日本語のエンコードや検索クエリが空の場合の処理など、使用時に注意が必要なポイントもあります。適切に使用することで、検索機能をよりユーザーフレンドリーにすることができます。
コメント