
WordPressでサイト内検索フォームを導入する場合は、関数 get search form を使います。
使い方はテンプレート内に次のように記述するだけです。
<?php get_search_form(); ?>
この記述により、WordPressに組み込みの検索フォームが表示されます。
組み込みの内容は wp-includes/general-template.php の174行目あたりからです。
サイト内検索フォームのカスタマイズ
今回はサイト内検索フォームをカスタマイズしたいと思います。
wp-includes/general-template.phpを直接書き換えると、新バージョンへの更新で上書きされる恐れがあるので、テーマフォルダにsearchform.phpを作成します。
関数「get search form」はテーマに「searchform.php」ファイルがあれば、それを使用して検索フォームを表示します。
[adsense]
searchform.php の作成
作成時に注意することは、フォームの送信先をホームURLにしてメソッドの指定はGETです。また、入力テキストフィールドの名前は s にして、label を必ず含める必要があります。
作成例にはplaceholderを設定しています。
作成例
<form role="search" method="get" id="searchform" class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>" >
<div>
<label class="screen-reader-text" for="s"><?php _ex( 'Search for:', 'label' ); ?></label>
<input type="text" value="<?php echo esc_attr( get_search_query() ); ?>" name="s" id="s" placeholder="サイト内検索"/>
<input type="submit" id="searchsubmit" value="<?php echo esc_attr_x( 'Search', 'submit button' ); ?>" />
</div>
</form>
cssでスタイリングします。
下記の作成例はSassで書いています。
作成例
#search {
width: auto;
padding: 0;
margin-left: 10px;
input {
vertical-align: middle;
float: left;
height: 26px;
padding: 0;
}
input#s {
@include font-size(11);
width: 180px;
border: 1px solid #d4d4d4;
padding: 0 5px;
border-radius: 5px 0 0 5px;
box-shadow: 0px 1px 3px rgba(0,0,0,0.2);
}
#searchsubmit {
background: url("images/base/search_btn.png") no-repeat center center transparent;
border: medium none;
cursor: pointer;
text-indent: -9999px;
width: 40px;
height: 26px;
display: block;
}
label {
display: none;
}
}
■検索フォームのカスタマイズ完成
検索フォームがこんな感じのデザインになりました。
![]()


