※Wordpress3を使用しています。
テキスト検索
まずは、普通のテキストのみの検索です。
wp template
<div id="search"> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <input name="s" id="s" type="text" /> <input id="submit" type="submit" value="検索" /> </form> </div>
これで「search.php」を作成して適当にループさせるだけで該当した記事が表示されますよね。
カテゴリーを絞り込み検索
カテゴリーをドロップダウンで表示して絞込み検索をできるようにします。
「●●カテゴリー」の「hoge」を検索といった感じですね。
wp template
<div id="search"> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <input name="s" id="s" type="text" /> <?php wp_dropdown_categories('depth=0&orderby=name&hide_empty=1&show_option_all=カテゴリー選択'); ?> <input id="submit" type="submit" value="検索" /> </form> </div>
テキストフィールドの後に「wp_dropdown_categories」を追加するだけです。
タグを絞り込み検索
さらにタグを絞り込み検索してみます。
方法は同じですが、タグにはカテゴリーのようなドロップダウンリストを作成する機能がないので、地味に表示します。
wp template
<div id="search"> <form method="get" action="<?php bloginfo( 'url' ); ?>"> <p>検索</p> <input name="s" id="s" type="text" /> <?php wp_dropdown_categories('depth=0&orderby=name&hide_empty=1&show_option_all=カテゴリー選択'); ?> <?php $tags = get_tags(); if ( $tags ) : ?> <select name='tag' id='tag'> <option value="" selected="selected">タグ選択</option> <?php foreach ( $tags as $tag ): ?> <option value="<?php echo esc_html( $tag->slug); ?>"><?php echo esc_html( $tag->name ); ?></option> <?php endforeach; ?> </select> <?php endif; ?> <input id="submit" type="submit" value="検索" /> </form> </div>
追加されたのは6~13行目ですね。
これでタグでの検索できるようになります。
参考サイト
WordPress Searching By Category
WordPress › フォーラム » タグクラウドをドロップダウンメニュー化したい