今回はwordpressでプラグインなどを使わず、デフォルトの検索(searchform.php)を改造しカテゴリーの絞り込み検索をつける方法をご紹介致します。「プラグインなどを使わず」と申し上げましたが、既に My Category Order プラグインがインストールされている状態でのお話になりますので、My Category Order がインストールされていない場合はインストールが必要になります。
My Category Order プラグインのダウンロードはこちらからどうぞ
■デフォルトの検索にカテゴリーの絞り込みを付ける方法
searchform.phpを開くとおそらく以下のソースが表示されると思います。ヘッダなどに埋め込まれている場合はheader.phpを開いて下さい。
<form method=”get” id=”searchform” action=”<?php bloginfo(‘url’); ?>/”>
<input type=”text” value=”<?php the_search_query(); ?>” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”検索” />
</form>
知っている方も沢山いらっしゃると思いますが上記のソースに
<?php wp_dropdown_categories(’show_option_all=’.__(‘ALL’).’&hide_empty=0′);?>
のソースをform内に加えて
<form method=”get” id=”searchform” action=”<?php bloginfo(‘url’); ?>/”>
<?php wp_dropdown_categories(’show_option_all=’.__(‘ALL).’&hide_empty=0′);?>
<input type=”text” value=”<?php the_search_query(); ?>” name=”s” id=”s” />
<input type=”submit” id=”searchsubmit” value=”検索” />
</form>
のように変更するとカテゴリーのドロップダウンメニューが付きます。

しかしコレでは、My Category Order で並び替えした通り表示はされず、また、階層のあるカテゴリの場合並びがぐちゃぐちゃになってしまいますので
<?php wp_dropdown_categories(’show_option_all=’.__(‘ALL).’&hide_empty=0′);?>
のソースを
<?php wp_dropdown_categories(’show_option_all=’.__(‘ALL’).’&hide_empty=1′.’&hierarchical=1′.’&orderby=order&title_li=’);?>
に変更するとMy Category Order と同じようにドロップダウンメニューも表示されます。カテゴリの階層が深い方にはおススメですので是非変更してみて下さい。
※上記のソースは半角が全角になっていたりするのでコピペの際はご注意ください。
記事:清原一馬