Movable Type 備忘録
TinyLPO プラグイン
- Prev Page: ブログ記事別コメントフィード作成
- Next Page: ブログ内検索、タグ検索で検索結果の絞込みをやってみる
こんにちわ^^
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 に記述するだけです。
フォーマット
AltTemplate 代替名称(半角英数字) 代替するテンプレート名称
たとえば、わたしのサイトでは以下のように代替テンプレートを記述しました。
記述例
AltTemplate search_lpo search_lpo.tmpl
実際に使う場合には、'search_lpo' という名称を指定することで、代替テンプレート search_lpo.tmpl を使用することができます。
また、代替テンプレート( search_lpo.tmpl )は必ず mt/alt-tmpl/ フォルダを基準とした相対パスを指定する必要があります。
上記例だと、alt-tmpl/ フォルダ直下に search_lpo.tmpl を置きます・・・と指示してます。
プラグインのインストール
まず、プラグインをインストールします。上記 Open MagicVox.net さんのページから TinyLPO プラグインをダウンロードします。
そして、いつものように mt/plugins/ フォルダ内に TinyLPO/ というフォルダを新規作成してその中にアップロードします。[2009.01.26] Yahoo からの訪問の場合、日本語キーワードで検索されると文字化けします。対策としてプラグイン内の 62 行目の 'EUC-JP' を 'UTF-8' に変更すれば解決します (●´∀`●)
LPO 用テンプレートを作成
次に LPO 用のテンプレートを作成します。
基本的には既存の「検索結果」テンプレートをベースに MTSearchResults のところだけを抜き出したものを、別ファイル( たとえば、search_lpo.tmpl )として保存して、mt/alt-tmpl/ フォルダ内にアップロードすれば OK です。
以下にデフォルトテンプレートをベースにした、LPO 用テンプレートのサンプルを記します。LPO 用テンプレート記述例
<h2 id="page-title" class="search-results-header">「<$MTSearchString$>」を含む最近の記事</h2><div class="search-results-container autopagerize_page_element"><MTNoSearchResults><__trans phrase="It was not possible to find it."></MTNoSearchResults><MTSearchResults><MTSearchResultsHeader><ul class="search-results-list"></MTSearchResultsHeader><li class="search-results-item"><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a></li><MTSearchResultsFooter></ul></MTSearchResultsFooter></MTSearchResults></div>
何度も言うように、わたしのサイトでは Ajax を使ってますので上記コードとはまったく別物です。なので、実際に動作できるかどうかは確認してません。 各自でアレンジして使っていただけたらと思います。
mt-config.cgi を修正
次に mt-config.cgi を先ほど説明しように記述します。 そして mt/ フォルダ内にアップロードしてください。
各テンプレートを修正
最後に、インデックステンプレート、ブログ記事テンプレートなどすべてのテンプレートに LPO 検索結果表示のコードを埋め込みます。
LPO 検索結果表示コード
<MTIfTinyLPO><iframe src="<$MTCGIPath$><$MTSearchScript$>?IncludeBlogs=<$MTBlogID$>&Template=search_lpo&search=<$MTSearchEngineQuery$>"></iframe></MTIfTinyLPO>
Open MagicVox.net さんとこでは、iframe を使って表示させる例が紹介されてます。 たぶん、他のみなさんも同じようにいけると思います。
注意することは、青字の部分には必ず mt-config.cgi で記述した AltTemplate ディレクティブの代替名称を指定することです。
ここで正しく指定しないと、代替するテンプレートが分からず、検索時にエラーしますのでご注意ください。
以上です。
Trackback Pings(0)
No trackbacks found.




こんばんは^^
本日は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 を記述してアップしてあります。
考えられる原因が判りましたら、アドバイスをお願いできないでしょうか?
どうかよろしくお願い致します。
>>1 中村ミノル さん
こんばんわ^^
基本的に 中村ミノル さんが設定された内容で問題ないと思われます。
MT3.3x だと動作が違うんですかね
試しに mt/search_templates/ フォルダ内に search_lpo.tmpl をおいて確認してみてください。
おはようございます。アドバイスありがとうございます!
ご指摘のとおり、tmplの置き場所を変えたら、iframe内に表示されたエラーメッセージは出なくなりました。
そこで、(当方はEUC-JPで運用しているので予想はしていたのですが、)iframe内の内容に文字バケがあります。
GoogleとYahoo!は、
�u�����<�ゃ����・膓��� ��羝���� ��茹h�� �����劫��v�������L�
* 正常なリンクが1件表示
となり、はじめに文字バケの文字列があって、その後に正常なリンクが1件表示されました。しかし
gooでは、
�u侫个続 測 分能 僖襯�v�������L�
となりました。
文字化けをクリアーするアイデアはないでしょうか?どうかよろしくお願いします。
>>3 中村 さん
こんばんわ^^
Google と Yahoo は基本 UTF-8 ですから文字化けすると思います。
また、TinyLPO プラグインも基本は UTF-8 です。
TinyLPO.pl 内の 48 行目の UTF-8 を EUC-JP に変更してみたらどうでしょうか
こんばんは^^
お疲れのところ、恐縮です。
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でしょうか?
>>5 中村 さん
> 変更は48行目だけで大丈夫でしょうか?
ウチは UTF-8 なのでそのような修正はしてませんが、コードを見る限りその修正だけでいいように見えます。
確認はしてませんが記事検索はできてるのですよね!?
そうしますと、TinyLPO の変換はうまくいってるのではないでしょうか。
うまくいってるからデータベースからちゃんと検索できてるのではないかと思われまする。
そうしますと考えられる事は、検索結果に問題があるように思います。
search_lpo.tmpl の文字コードはどのように UP してますか!?
そこら辺をご確認ください
これ以上のことはわたしには分かり兼ねまする。
ありがとうございます。
search_lpo.tmpl の文字コードをEUC-JPにしてみました。
今度は、3つのエンジンとも記事が検索できなくなりました。
うーん、もう少し、考えて見ます。すみませんでした。
>>7 中村 さん
そうですか
お役に立てなくってすいません