MENU

get_search_query()

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() はどんな場面で使いますか?

検索結果ページでユーザーが入力したキーワードを表示したいときに使います。また、検索フォームのフィールドに以前入力された内容を保持したい場合にも利用します。

検索クエリが空の場合の対処法は?

以下のように条件を追加することで、検索クエリが空のときの対応が可能です。

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

検索結果ページが正常に表示されない場合の原因は?

テーマにsearch.phpが存在しない、またはパーマリンクの設定が正しくない場合に発生することがあります。パーマリンク設定を更新し、search.phpテンプレートが正しく機能することを確認してください。

まとめ

get_search_query() は、検索結果ページで現在の検索クエリを取得し、表示するための便利なテンプレートタグです。

is_search()get_search_form() と組み合わせて使うことで、検索機能を効果的に拡張できます。

また、日本語のエンコードや検索クエリが空の場合の処理など、使用時に注意が必要なポイントもあります。適切に使用することで、検索機能をよりユーザーフレンドリーにすることができます。

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

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次