WordPress Search Word Highlight plugin for Multibyte (長い)が動き始めましたので置いてみます。 🙂
[ダウンロード]
searchword-highlight-1.0.zip
■ 紹介
サーチエンジンから WordPress サイトに飛んできた際に、サーチエンジンでの検索語をサイト上でハイライト表示する WordPress 用プラグインです。
“Google 検索: site:hiromasa.zone.ne.jp 多摩川 フナ パクパク ライズ 本流” こんな感じになります。(リンクをたどってみて下さい)
■ 機能
- サーチエンジン検索語をハイライト表示する
- WordPress の検索機能によって表示された結果の検索語をハイライト表示する
- プラグイン管理画面から各種設定ができる
- 対象サーチエンジンをメンテナンスできる
- WordPress / WordPress ME 1.5.1 対応
- 漢字等マルチバイト文字でも正常に動く(ハズ)
■ 使い方
- wp-content/plugin/ ディレクトリに searchword-highlight.php を格納する
- wp-content/plugin/ ディレクトリに お使いの WordPress 言語設定にあった .mo 言語ファイルを格納する。ME の標準では searchword-highlight-ja_EUC.mo になります。(言語ファイルは、ME 用 3種類と WordPress UTF-8 設定版の4種類同梱されています)
- WordPress 管理画面から “プラグイン” -> “Search Word Highlight for Mutibyte” の “有効化” を押下します
- これで、サーチエンジン(google.co.jp と yahoo.co.jp)とWordPress 検索機能による検索語がハイライトされます
- これらの状態を変更したり、対象サーチエンジンを追加/削除したい場合は、WordPress 管理画面から “設定” -> “Search Word Highlight” で設定できます
■ 特記事項
- ハイライトは1つのタグ中(例えば段落)で最初に現れた単語のみハイライトします。(あまりハイライトするとうるさいため)
- サーチエンジンからの検索ハイライトは、ユーザが使うブラウザから発行される HTTP_REFERER を利用して実装されているため、これを抑止しているユーザにはハイライトされません
- 管理画面のデバッグモードで HTTP_REFERER を上書きできます。対象サーチエンジン追加時の試験ができます。(サーチエンジンからリンクされたと仮定できる) デバッグモードが有効になっている場合、ハイライト対象語がこの設定に上書きされてしまうので、試験後は必ず無効にして下さい。
- サーチエンジンが行う検索語の文脈解析には対応していないため、検索語によってはハイライトされません。(単純スペース分割後、検索処理を行っています)
- 本文中に <script> を挿入しているエントリは無条件にハイライト処理を中止します。 これにより、ハイライト置換でスクリプトを壊すことを保護しています。
- php マルチバイト関数を使っているので disable の環境では動きません(通常は大丈夫です)
- ライセンスは WordPress に従います。(GPL です)
■ 追加サーチエンジンの設定
サーチエンジンで “日本語” という単語で検索した時に表示される URL を見てみると、
http://search.yahoo.co.jp/bin/search?fr=top&p=%C6%FC%CB%DC%B8%EC
こんなふうになっているのが分かります。 このプラグインでは3種類のパラメータを使ってこの URL を解析し検索単語を抽出しサイト上でハイライト表示しています。このパラメータを管理画面から追加することにより、ハイライト対象とするサーチエンジンを追加できます。
この URL (yahoo.co.jp) を対象にしたい場合は以下のように設定します。
- Hostname + Path : “search.yahoo.co.jp/bin/search” と、「?」の前までを http:// を除いて入力します
- Query : “p” とします。 “=” 以下が “%C6%FC%CB%DC%B8%EC” といった文字列が入力されている部分の引数(この場合 “p”)を入力します
- Character Encode : “日本語” という単語で検索した結果のエンコード文字により以下のように設定します
-
- EUC-JP : %C6%FC%CB%DC%B8%EC
- UTF-8 : %E6%97%A5%E6%9C%AC%E8%AA%9E
- Shift_JIS: %93%FA%96%7B%8C%EA
デフォルトで yahoo.co.jp と google.co.jp が登録されていますので、他のサーチエンジンも追加してみて下さい。
少しだけあたってみたところ、2005年 6月時点で下記のようになっているようです。
Hostname + Path |
Query |
Character Encode |
search.msn.co.jp/results.aspx |
q |
UTF-8 |
beta.search.yahoo.co.jp/search |
p |
UTF-8 |
search.goo.ne.jp/web.jsp |
MT |
EUC-JP |
www.infoseek.co.jp/OTitles |
qt |
EUC-JP |
beta.search.msn.co.jp/results.aspx |
q |
UTF-8 |
パラメータはサーチエンジンの仕様変更で(大手はほとんどないですが)変わる可能性もありますので、たまにチェックして下さい。設定つくったら是非ぼくにも教えて下さい。 😛 ブログ系の検索サイトがほとんど分かりません。
■ 最後に
不具合などありましたら、コメント、トラックバック等ください。 直すように善処いたします。
また、初期バージョンをつくるにあたりまして、Masayan さんと kohaku さんにお世話になっております。
Special Thanks: Masayan (http://mmrt.sub.jp/blogs/)
Special Thanks: kohaku (http://aoiro.s58.xrea.com/)
ソースにクレジットさせて頂きました。 ありがとうございました。 🙂