WordPressで検索フォームを表示するには、get_search_form() 関数が便利です。
デフォルトの検索フォームを簡単に呼び出せるだけでなく、自分好みにカスタマイズしたオリジナル検索フォームを表示することもできます。
この記事では、get_search_form() の基本的な使い方と、オリジナル検索フォームを作成して表示する方法を解説します。
目次
get_search_form() とは?
get_search_form() はテーマの任意の場所に検索フォームを表示するための関数です。
呼び出すだけで、デフォルトの検索フォームHTMLを取得・表示できます。
<?php get_search_form(); ?>
これだけで検索フォームが表示されます。
自動で出力されるHTMLをHTML5に対応させる方法
WordPressテーマでHTML5マークアップを利用したい場合、functions.php に以下のコードを追加して add_theme_support() を使いましょう。
function mytheme_setup() {
add_theme_support( 'html5' );
}
add_action( 'after_setup_theme', 'mytheme_setup' );
ポイント
html5をサポートすると、検索フォームやコメントフォームなどが自動的にHTML5対応のマークアップで出力されます。- 上記の配列で、HTML5対応させたい要素を指定します。
- これにより、
get_search_form()の出力もHTML5準拠のコードになります。 - テーマの
functions.phpに追加するだけで簡単に対応可能です。
この設定を行うことで、テーマ全体のフォームやギャラリーなどがHTML5仕様に最適化され、最新のWeb標準に準拠した出力が期待できます。
オリジナル検索フォームを作る方法
WordPressはテーマ内に searchform.php というテンプレートファイルを置くことで、get_search_form() の出力を上書きできます。
このファイルを編集して、フォームのHTMLを自由にカスタマイズしましょう。
例:シンプルなカスタム検索フォーム
searchform.php に以下のように記述します。
<form role="search" method="get" class="custom-search-form" action="<?php echo esc_url(home_url('/')); ?>">
<label>
<span class="screen-reader-text"><?php echo _x('Search for:', 'label'); ?></span>
<input type="search" class="search-field" placeholder="<?php echo esc_attr_x('検索キーワードを入力', 'placeholder'); ?>" value="<?php echo get_search_query(); ?>" name="s" />
</label>
<button type="submit" class="search-submit"><?php echo esc_html_x('検索', 'submit button'); ?></button>
</form>
このフォームはアクセシビリティにも配慮しつつ、カスタムクラスやプレースホルダーも設定しています。
テーマ内での使い方
header.php や sidebar.php など任意の場所で以下のように呼び出します。
<?php get_search_form(); ?>
searchform.php が存在すればそちらが読み込まれ、なければWordPress標準のフォームが出力されます。
カスタム検索フォームをさらに発展させるには?
- CSSで見た目を自由にデザイン
- JavaScriptで入力補助や候補表示を追加
- 投稿タイプやタクソノミーで検索範囲を限定する隠しフィールドを追加
など様々な拡張が可能です。
まとめ
get_search_form()は簡単に検索フォームを表示できる便利な関数searchform.phpをテーマ内に作成することでオリジナルフォームを自由にカスタマイズできる- アクセシビリティやユーザビリティを意識したフォーム設計がおすすめ
ぜひ自分のサイトに合った検索フォームを作ってみてください。