NP_Relatedで他の検索結果を

Webネタ・サイト更新

 さて週末。このまえはNP_Relatedを最新版にして、Google AJAX APIを用いた検索結果の表示ができるようになった。
 でも、デフォルト状態ではGoogleWeb検索と、Googleブログ検索の結果が表示されるのみ。結果の表示数は1件固定。
 普通のブログ記事ならそれでも良いけれど、そもそもアップデートした目的は、オンラインゲームのデータベースにアクセントを付けるために導入したので、他の結果が欲しい。ほしいのは、

  • Googleニュース検索
  • Google画像検索
  • Google動画検索

 オンラインゲームをやろうと思って検索したら、やっぱりスクリーンショットや動画が欲しいかなと。公式ページや関連ブログは、Google検索で出てくるだろうしね。
 もともと、AJAXを使っているので、好みの形に表示するのは結構厄介。
Google AJAX Search API
 この公式ページを読んで改造。


 まず、他の検索結果を表示するのは、以下のように指定してやれば良い。

function OnLoad() {
// create a draw options object so that we
// can position the search form root
var options = new google.search.SearcherOptions();
options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
// Create a search control
var searchControl = new GSearchControl();
searchControl.addSearcher(new GnewsSearch(),options);
searchControl.addSearcher(new GimageSearch(),options);
searchControl.addSearcher(new GvideoSearch(),options);
// Tell the searcher to draw itself and tell it where to attach
searchControl.draw(document.getElementById("searchcontrol"));
// Execute an inital search
searchControl.execute("$q");
}
GSearch.setOnLoadCallback(OnLoad);

 これで、検索結果を4件、ニュース,画像,動画の検索結果が表示される。
 この結果の中で、ニュースはタイトルだけで記事の要約は不要なので、それを非表示に。非表示の指定は、CSSで行うので、以下の改造を。

<style type="text/css">
@import "http://www.google.com/uds/css/gsearch.css";
.gsc-control { width: auto; }
table.gsc-search-box { display:none ;}
.gs-newsResult .gs-snippet { display:none ;}
</style>

 Googleの検索ボックスと、ニュースの要約を非表示に。
 これでかなり理想な感じに。ページの例は以下。
新着オンラインゲーム >> マビノギ
 この結果、なかなかよさげなのだけれど、AJAXの悲しいところは、検索エンジンには対応していないので、この部分は拾ってもらえないこと。SEO対策的には、検索結果をデータベースに一旦キャッシュしてPHPで加工して表示するのが良いのだけれど、それはまたおいおい。

サクラキャンドル

 都内在住。理系高校理系大学を経て、電機関係の会社でリーマンやってます。
 仕事内容とサイトの内容はほとんど関係がなく、趣味の延長線上でいろいろと紹介します。

サクラキャンドルをフォローする
スポンサーリンク
農場主の日常

コメント

タイトルとURLをコピーしました