Movable Type 備忘録

 TinyLPO プラグイン

  • Jan252009
  • Vote:
    http://bizcaz.com/archives/2009/01/25-154411.php
  • Categories: Customize
  • Tags: ,
  • Social Bookmark

こんにちわ^^

Open MagicVox.net さんところで、便利そうなプラグインが公開されてたので実際に使ってみました。

LPO( Landing Page Optimization )というのは初めて聞いた単語だったのですが、以下に少し引用します。

LPO は Landing Page Optimization の接頭語で,検索エンジン経由でサイトを訪問したユーザが最初に見るページを,検索に用いられた検索ワードなどを元にして最適化を行い,ページビューやコンバージョンを向上させるテクニックのことです。同じページでも検索に用いられた検索ワードによって表示する内容を変化させたりするのが一般的です。

要するに、検索エンジンから来た訪問者さんの検索キーワードから、さらにサイト内検索して「こんな記事もありますよぉ~」とお知らせ & 他の記事にも誘導する・・・ってことですかね (; ̄∇ ̄A

通常のブログ内検索( mt-search.cgi )を使って、検索キーワードで検索した結果をページが表示されるときに表示してあげましょう・・・というプラグインです。
わたしのサイトではブログ内検索に Ajax を使ってるので記事の先頭にその結果を表示させてます。

[2009.01.27] 友人に指摘されて気づいたのですが、こちらのプラグインでは、PHP コードを出力するタグを使用します。
その PHP コードを使って動的に検索エンジンからのキーワードによるブログ内検索が行われるので、ブログ PHP 化を行ってないと使用できません。
大事なこと書き忘れちゃった (; ̄∇ ̄A

使い方

使い方は少し一工夫が必要です。
AltTemplate ディレクティブで LPO 検索用の代替テンプレートを用意する必要があります。 というのも、LPO 検索結果を表示する場合、ブログ記事ページ中にその結果をインラインする形になるので、デフォルトの「検索結果」テンプレートでは不都合が生じちゃいますからね ( ̄∇ ̄)b

AltTemplate ディレクティブはとっても便利なもので、以下のようなフォーマットで mt-config.cgi に記述するだけです。

フォーマット

  1. AltTemplate 代替名称(半角英数字) 代替するテンプレート名称

たとえば、わたしのサイトでは以下のように代替テンプレートを記述しました。

記述例

  1. AltTemplate search_lpo search_lpo.tmpl

実際に使う場合には、'search_lpo' という名称を指定することで、代替テンプレート search_lpo.tmpl を使用することができます。
また、代替テンプレート( search_lpo.tmpl )は必ず mt/alt-tmpl/ フォルダを基準とした相対パスを指定する必要があります。
上記例だと、alt-tmpl/ フォルダ直下に search_lpo.tmpl を置きます・・・と指示してます。

  1. プラグインのインストール

    まず、プラグインをインストールします。上記 Open MagicVox.net さんのページから TinyLPO プラグインをダウンロードします。
    そして、いつものように mt/plugins/ フォルダ内に TinyLPO/ というフォルダを新規作成してその中にアップロードします。

    [2009.01.26] Yahoo からの訪問の場合、日本語キーワードで検索されると文字化けします。対策としてプラグイン内の 62 行目の 'EUC-JP' を 'UTF-8' に変更すれば解決します (●´∀`●)

  2. LPO 用テンプレートを作成

    次に LPO 用のテンプレートを作成します。
    基本的には既存の「検索結果」テンプレートをベースに MTSearchResults のところだけを抜き出したものを、別ファイル( たとえば、search_lpo.tmpl )として保存して、mt/alt-tmpl/ フォルダ内にアップロードすれば OK です。
    以下にデフォルトテンプレートをベースにした、LPO 用テンプレートのサンプルを記します。

    LPO 用テンプレート記述例

    1. <h2 id="page-title" class="search-results-header">「<$MTSearchString$>」を含む最近の記事</h2>
    2. <div class="search-results-container autopagerize_page_element">
    3. <MTNoSearchResults>
    4.     <__trans phrase="It was not possible to find it.">
    5. </MTNoSearchResults>
    6.  
    7. <MTSearchResults>
    8.     <MTSearchResultsHeader>
    9.         <ul class="search-results-list">
    10.     </MTSearchResultsHeader>
    11.         <li class="search-results-item">
    12.             <a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a>
    13.         </li>
    14.     <MTSearchResultsFooter></ul></MTSearchResultsFooter>
    15. </MTSearchResults>
    16. </div>

    何度も言うように、わたしのサイトでは Ajax を使ってますので上記コードとはまったく別物です。なので、実際に動作できるかどうかは確認してません。 各自でアレンジして使っていただけたらと思います。

  3. mt-config.cgi を修正

    次に mt-config.cgi を先ほど説明しように記述します。 そして mt/ フォルダ内にアップロードしてください。

  4. 各テンプレートを修正

    最後に、インデックステンプレート、ブログ記事テンプレートなどすべてのテンプレートに LPO 検索結果表示のコードを埋め込みます。

    LPO 検索結果表示コード

    1. <MTIfTinyLPO>
    2. <iframe src="<$MTCGIPath$><$MTSearchScript$>?IncludeBlogs=<$MTBlogID$>&amp;Template=search_lpo&amp;search=<$MTSearchEngineQuery$>"></iframe>
    3. </MTIfTinyLPO>

    Open MagicVox.net さんとこでは、iframe を使って表示させる例が紹介されてます。 たぶん、他のみなさんも同じようにいけると思います。
    注意することは、青字の部分には必ず mt-config.cgi で記述した AltTemplate ディレクティブの代替名称を指定することです。
    ここで正しく指定しないと、代替するテンプレートが分からず、検索時にエラーしますのでご注意ください。

以上です。

 Trackback Pings(0)

No trackbacks found.

 Comments(8)

#1: Posted by 中村ミノル @ May 11, 2009 [REPLY]
user-pic

こんばんは^^
本日はLPOについて教えていただきたくて、書き込みさせていただきました。
(php化したブログにおいて)TinyLPOを使ってみたのですが、エントリーのページにおいて、インラインフレームの中に、MTの管理画面のようなデザインのエラーメッセージ「Movable Type
エラーが発生しました。
ローカル・ファイル/virtual/(当方のIPアドレス)/home/mt/search_templates/search_lpo.tmplが開けません: No such file or directory 」

mt/alt-tmpl/ search_lpo.tmpl
を置いていますし、mt-config.cgiにもAltTemplate search_lpo search_lpo.tmpl を記述してアップしてあります。

考えられる原因が判りましたら、アドバイスをお願いできないでしょうか?

どうかよろしくお願い致します。

#2: Posted by Author Profile Page bzbellから中村ミノルへの返信 @ May 12, 2009 [REPLY]
user-pic

>>1 中村ミノル さん

こんばんわ^^

基本的に 中村ミノル さんが設定された内容で問題ないと思われます。
MT3.3x だと動作が違うんですかねあせあせ
試しに mt/search_templates/ フォルダ内に search_lpo.tmpl をおいて確認してみてください。

#3: Posted by 中村 @ May 12, 2009 [REPLY]
user-pic

おはようございます。アドバイスありがとうございます!
ご指摘のとおり、tmplの置き場所を変えたら、iframe内に表示されたエラーメッセージは出なくなりました。

そこで、(当方はEUC-JPで運用しているので予想はしていたのですが、)iframe内の内容に文字バケがあります。
GoogleとYahoo!は、
�u�����<�ゃ����・膓��� ��羝���� ��茹h�� �����劫��v�������L�

* 正常なリンクが1件表示

となり、はじめに文字バケの文字列があって、その後に正常なリンクが1件表示されました。しかし
gooでは、
�u侫个続 測 分能 僖襯�v�������L�

となりました。

文字化けをクリアーするアイデアはないでしょうか?どうかよろしくお願いします。

#4: Posted by Author Profile Page bzbellから中村への返信 @ May 12, 2009 [REPLY]
user-pic

>>3 中村 さん

こんばんわ^^

Google と Yahoo は基本 UTF-8 ですから文字化けすると思います。
また、TinyLPO プラグインも基本は UTF-8 です。
TinyLPO.pl 内の 48 行目の UTF-8 を EUC-JP に変更してみたらどうでしょうかにこっ!

#5: Posted by 中村 @ May 12, 2009 [REPLY]
user-pic

こんばんは^^
お疲れのところ、恐縮です。

TinyLPO.pl 内の 48 行目の UTF-8 を EUC-JP に変更し、再構築死、
Google,Yahoo!Japan,gooの3つからアクセスしてみました。が、状況は変化しませんでした。
なお、TinyLPO.pl 自体は元々(日本語も含まれていないので)SJISで保存されています。

原理的には、
・検索サイトからアクセスされた時のリファラー(Google,Yahoo!Japanがutf-8, gooがEUC-JP)を、TinyLPOに渡して処理する
・TinyLPOは渡されたリファラーを(48 行目を EUC-JP に変更すれば)EUC-JP に変換してEUC-JPで蓄積されたデータベースを見に行く
という感じなのでしょうか?それであれば、ご指摘の方法でうまく行きそうなんですが・・・?

変更は48行目だけで大丈夫でしょうか?

後、うまく行った後の話ですが、frame内のリンクをクリックした結果がframe内に表示されるのでなく
ランディングページを切り替えるには、テンプレートの要素のtarget属性をparentにすればOKでしょうか?

#6: Posted by Author Profile Page bzbellから中村への返信 @ May 13, 2009 [REPLY]
user-pic

>>5 中村 さん

> 変更は48行目だけで大丈夫でしょうか?

ウチは UTF-8 なのでそのような修正はしてませんが、コードを見る限りその修正だけでいいように見えます。
確認はしてませんが記事検索はできてるのですよね!?
そうしますと、TinyLPO の変換はうまくいってるのではないでしょうか。
うまくいってるからデータベースからちゃんと検索できてるのではないかと思われまする。

そうしますと考えられる事は、検索結果に問題があるように思います。
search_lpo.tmpl の文字コードはどのように UP してますか!?
そこら辺をご確認くださいもじもじ
これ以上のことはわたしには分かり兼ねまする。

#7: Posted by 中村 @ May 13, 2009 [REPLY]
user-pic

ありがとうございます。
search_lpo.tmpl の文字コードをEUC-JPにしてみました。
今度は、3つのエンジンとも記事が検索できなくなりました。

うーん、もう少し、考えて見ます。すみませんでした。

#8: Posted by Author Profile Page bzbellから中村への返信 @ May 13, 2009 [REPLY]
user-pic

>>7 中村 さん

そうですかのほほん
お役に立てなくってすいませんエーン

 Post a Comment

 

コメント用フィード