リファラからキーワードを抽出するphpコードをいくつか見つけました。仮に、これらのどれかを使用したとして、WordPressの標準検索フォームに、抽出されたキーワードを3つ以内、or条件でテキストボックスに入れ込む、というこができませんでしょうか?
キーワード抽出コード例(1)
http://www.nekomanma.jp/room/php/se.php
キーワード抽出コード例(2)
http://blog.livedoor.jp/takah0918/archives/50120441.html
キーワード抽出コード例(3)
http://www.happyquality.com/2009/10/28/1082.htm
上記の関数を組み込まれたget_search_form()のような関数がほしいと思いますが、ご支援頂ければ幸いです。よろしくお願いいたします。
以下のコードでサイト内検索フォームに外部サーチエンジンの検索ワードをセットできました。ウィジェットで使うことができました。
<?php $se_info = array( "google.co.jp/url"=>"q", "bing.com/search"=>"q", "livedoor-search.naver.jp/search"=>"q",
"search.yahoo.co.jp/search"=>"p",
"excite.co.jp/search.gw"=>"search",
"search.goo.ne.jp/web.jsp"=>"MT",
"search.nifty.com/websearch/search"=>"q",
"websearch.rakuten.co.jp/WebIS"=>"qt");
$referer = $_SERVER["HTTP_REFERER"];
// リファラを?で分けて、配列$Refに保存
// $Ref[0]は、?より前、
// $Ref[1]が、?より後(つまり、クエリ文字列)
$Ref = split("\?",$referer);
// mb_parse_strでクエリ文字列を分析($Qに連想配列として格納する)
mb_parse_str($Ref[1], $Q);
foreach ($se_info as $key => $value) {
if (stripos($referer,$key)) {
$word = $Q[$value];
?>
<form method="get" id="searchform" action="<?php bloginfo( 'url' ); ?>">
<div><label class="screen-reader-text" for="s">検索:</label>
<input type="text" value="<?php echo $word; ?>" name="s" id="s" />
<input type="submit" id="searchsubmit" value="検索" />
</div>
</form>
<?php }
}
?>
ここでの問合せには馴染まなかったかもしれません。