スマート検索ウィジェット

Wordpressデフォの検索ウィジェットがイマイチしょっぱいので自分用の検索ウィジェットを作ってみた。その名も「Smart Search(笑)」
デフォの検索フォームは他のウィジェットと外れたソースフォーマットのためそこを合わせ、検索フォームの初期値を設定できるくらいの機能ではありますが。

function.phpに追記することでウィジェット画面に追加されます。
便利なプラグイン「Search Everything」との連動も確認済みです。


<?php
// Smart Search Widget
register_sidebar_widget(__('Smart Search','search'), 'widget_search');
register_widget_control( 'Smart Search', 'search_control' );

function widget_search($args){
$search_title = get_option('search_title');
$title = empty($search_title) ? __('検索' ,'search') : $search_title;
$search_default = get_option('search_default');

if(get_search_query()){
$txt_value = esc_attr(apply_filters('the_search_query', get_search_query()));
} else {
$txt_value = $search_default;
}

extract($args);
echo $before_widget."\n";
echo $before_title . $title . $after_title."\n";
echo '<form role="search" method="get" id="searchform" action="' . get_option('home') . '/" >'."\n";
echo '<input type="text" name="s" id="s" value="'.$txt_value.'" onblur="if (this.value == \'\') this.value = \''.$search_default.'\';"  onfocus="if (this.value == \''.$search_default.'\') this.value = \'\';" />'."\n";
echo '<input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" />'."\n";
echo '</form>'."\n";
echo $after_widget."\n";
}
function search_control(){
$search_title = get_option('search_title');
if (isset($_POST['search_title'])) {
update_option('search_title', $_POST['search_title']);
}
$search_default = get_option('search_default');
if (isset($_POST['search_default'])) {
update_option('search_default', $_POST['search_default']);
}
?>
<p><label for="search_title"><?php _e('タイトル:','search') ?>
<input id="search_title" name="search_title" type="text" value="<?php echo $search_title; ?>" /></label></p>

<p><label for="search_default"><?php _e( '初期文字列:','search' ) ?>
<input id="search_default" name="search_default" type="text" value="<?php echo $search_default; ?>" /></label></p>

<input type="hidden" id="search-submit" name="search-submit" value="1" />
<?php
}
?>

プラグイン化できれば楽なんでしょーけどねー、そこまでにはまだ至らず。



意外やアッサリとプラグイン化できたので、利用してみたい人はご自由にどうぞ。すごい単純なのでプラグイン作りの参考にも…なるかなァ…
>Wordpressプラグイン「Smart Search」ダウンロード
ZipファイルのままWPへ読み込んで有効化してもらうだけで、Smart Search ウィジェットが追加されます。
お決まりの文句ですが、ご利用により発生した一切の不利益の責任を負いません。



この程度の機能を備えたプラグインは当然のようにあるんでしょうけど、探すにも英語の海を掻き分けなけりゃならないわけで…なら作っちまえの精神で。



7/8追記:自分用にちょっと機能向上させました。
イメージボタンの利用を可能にしました。
書き出すHTMLもちょっと整理をしました。
ダウンロードリンクは変わっていませんのでご自由に。