GoogleSitemaps

いまさらかもしれませんが、google向けのサイトマップを登録してみました。
googleサイトマップ

MovableTypeでやるときは、以下のテンプレートを「sitemap.xml」という名前でサイトのトップディレクトリに出力してあげて、それをgoogleサイトマップに登録してあげましょう。

<?xml version=”1.0″ encoding=”UTF-8″?>
<urlset xmlns=”http://www.google.com/schemas/sitemap/0.84″>
<url>
<loc><$MTBlogURL encode_xml=”1″$></loc>
<priority>1.0</priority>
</url>
<MTEntries lastn=”9999″>
<url>
<loc><$MTEntryPermalink encode_xml=”1″$></loc>
<lastmod><$MTEntryModifiedDate utc=”1″ format=”%Y-%m-%dT%H:%M:%SZ”$></lastmod>
</url>
</MTEntries>
</urlset>

その後、googleマップで色々設定してあげると、googleに更新を伝えたり、ロボットの巡回ルートをsitemapで伝えてあげれるので、効率よく情報を取得してもらえます。

また、googleサイトマップでは、自分のサイトの情報をみることができます。
どのようなキーワードで検索されてるのが多いか、サイトマップで巡回できなかったURLがあるかどうか、などが確認できちゃいます。
便利!

で、これを見て気がついたんですが、「検索エンジンから飛んできたページの考察1」で、このサイトが「Entropia Universe」という単語で検索されて9番目だ、わーい。と喜んでたんですが、「EntropiaUniverse」って単語だと、なんと1番目
まぁ、際どい単語で特定のサイトを狙って検索、という感じに近いし手放しでうれしいわけではないですが、競争率の低いカテゴリであれば上位を狙うことは今からでも可能、っていうよい例かもしれませぬ。

あと、「EntropiaUniverse」と「Entropia Universe」だと、後者の方が検索されている数が多いみたいです。
つまり、こんくらい長い英単語だと、くっつけて検索するよりも、スペースをいれて検索する方が多いってことでしょうかね。
もうちょっと見てみないとわかりませんが。

人気記事ランキング

このブログのトップにアクセスの多かった記事を4つ表示していますが、自動で生成されているわけではありません。
自分でアクセス解析の結果を見て、アクセスが多いページ4つを選んで自分で作成しています。
しかしながら、ちょーめんどくさいので、ログから自動で人気記事ランキングを作りたい。
そう思って探していたらやっぱりありました。
世の中すごい人がいるものですね。
というわけで、今回はMovableTypeで人気記事ランキングを作る方法です。
作る方法というか、クロスブリードさんのMT-MostVisitedの導入方法を、ファイル名がエントリーID以外でも強引にやっちゃう方法です。

人気記事ランキングを作るには、MT-MostVisitedプラグインを利用します。
コレ自体の導入の仕方は、以下の参考にさせていただいたサイトさんが素晴らしい説明をしてくれているので、割愛。。。

クロスブリードさんはPHP化のときもじっくり見させてもらって感謝感謝ですm(._.*)mペコッ

で、いつものごとく、紹介して終わりか?、というとそうじゃないんです。
相変わらず、皆さん素晴らしい解説をしてくれているのに、動きませんw

なぜ動かないのか、というと、
このMT-MostVisitedプラグインは、ログに記録されたページの
ファイル名からEntryIDを取得
するんですよ。

と言われても、使ったことある人しかわからないですよね。
クロスブリードさんでも、コメント欄に
アーカイブファイル名を日付とかにしたので、現在は使ってない
って書いてましたが、私も日付でアーカイブファイル名を作ってるので同様に使えないのです。

んじゃ、どうするか。
エントリーIDのアーカイブファイル名にするのが一番楽なんですが、何か負けた気がするので、ログファイルに記録されるファイル名を強引に書き換えてみたいと思いますw

ログ取りcgiの改造

まず、基本はクロスブリードさんのところの構成です。
(ログ取りcgi+エントリーアーカイブでcgiを呼ぶ)
ログ取りのcgiの元は、クロスブリードさんのcgiを利用させていただきましたm(._.*)mペコッ
クロスブリードさんのcgiを元に、cgiの呼び出し側から「***.cgi?EntryID=35」というようにEntryIDを入れてあげて、そのIDを使ってファイル名を生成しています。
(できれば、アイディアだけ汲み取ってご自分でスクリプトを書いていただけると一番うれしいですw)

これをダウンロードしましょ

$max、$myself、$archive_pathは自分の環境に合わせて変更してください。
(よく見てないですが、恐らく今のスクリプトだと$myselfは使ってないです。)
基本はクロスブリードさんのところの設定と同じです。

で、本家のcgiはエントリーアーカイブに、以下のような感じで書きますが、

<SCRIPT Language=”JavaScript”>
<!–
document.write(“<img src=’http://(サーバ名)/logs/aclog.cgi?”);
document.write(document.referrer+”‘ width=1 height=1>”);
// –>
</SCRIPT>
<NOSCRIPT>
<IMG src=”http://(サーバ名)/aclog.cgi?JS_OFF” width=”1″ height=”1″>
</NOSCRIPT>

改造したログcgi使う場合は、エントリーアーカイブに

<SCRIPT Language=”JavaScript”>
<!–
document.write(“<img src=’http://(サーバ名)/logs/aclog.cgi?EntryID=<$MTEntryID$>&ref=“);
document.write(document.referrer+”‘ width=1 height=1>”);
// –>
</SCRIPT>
<NOSCRIPT>
<IMG src=”http://(サーバ名)/logs/aclog.cgi?EntryID=<$MTEntryID$>” width=”1″ height=”1″>
</NOSCRIPT>

と、追加します。
srcのURLは適度に書き換えてください。
まぁ、クロスブリードさんのcgi呼び出しに、EntryIDを追加しただけです。
「JS_OFF」って何に使ってるかわからなかったので、消しましたが・・・。
(CGIわかりませぬ・・・)
まぁ、デバックとかは追い追い。。。

このログcgiで吐き出されたログファイルを使えば、MTMostVisitedが動いてくれる・・・はず。
現在、トップページでためしに動作させてます。
といっても、まだ自動更新ではないです・・・w
自分で再構築する必要があります。
最終的には、トップページの下部にあるように専用の画像付きで出したいし、まだまだいじらなくてはいけません。

できればログも、新たにログを取るのではなくて、
アパッチログに記録されている日付ファイル名を、エントリーIDに変換したいところですがね。

MTで、インデックスが更新される際に「EntryIDとファイル名の関係を示したファイル」を作るようにして、そのファイルを利用して、アパッチログを変換。

と、考えてはみたが、cgiは詳しくないので今すぐには作れない;w;
本棚探したらcgiの本もあったし、今度チャレンジする・・・かも。

NiceLink For MT

MovableTypeを利用しようと色々探しているとき、とある便利そうなツールを発見しました。

FireFoxの拡張機能の「Greasemonkey」のスクリプトである「はてなダイアリー用 NiceLink」(nazokingをMovableType用に修正した「NiceLink for MT」(AUSGANG SOFTっていうちょー便利そうで今までMovableTypeで記事なんて書いたことないけどこんな機能使えるなら明日から・・・いや今すぐMovableTypeで記事書くもんっ、となりかねないやつです。たぶん。

まず、NiceLinkとNiceLink For MTで何ができるかというと。

  • 記事の編集中に、言葉を選択して「Nice」ボタンを押すと、googleの検索結果一覧が表示され、一覧から選択するだけでリンクを挿入することができます(下図参照)。
  • 同様に、自分のブログ内から検索してリンクを挿入することができます。
  • はてなダイアリーIDを設定すると、はてなダイアリーから検索してリンクを挿入することができます。
  • アマゾンのアソシエイトIDを設定すると、アマゾンのアフィリエイトリンクを挿入することができます。

nicelink_image.jpg(39822 byte)

詳しくはAUSGANG SOFTさんがFlashで分かりやすく説明されています!

かな~り便利そうなツールですが、私の環境(「Firefox 1.5」+「Greasemonkey 0.6.4」+「MovableType 3.2-ja-2」)に導入してみたら・・・動きませんでした・・・(w_-;

しかしながら、nazokingさんのスクリプトでは「Greasemonkey 0.6.4対応」となっているので、きっと動くはず・・・
そう思って、試しにはてなダイアリーのID取ってNiceLinkを使ってみると・・・動く!!
ということは、NiceLink For MTの方もどこかしら修正すれば動くんじゃないのかなぁ、と思っていじってみました。

で、これができあがったスクリプト
 動作確認環境:Firefox 1.5、Greasemonkey 0.6.4、MovableType 3.2-ja-2

nicelinkformovabletype_for_GM064.user.js

インストール方法

  1. Firefoxをインストールする。
  2. Greasemonkeyをインストールする。
  3. Firefoxでこのページを開き、「nicelinkformovabletype_for_GM064.user.js」を右クリックして「Install User Script…」でインストールする。
  4. 「ツール」→「Manage User Scripts」でインストールしたやつの「induded pages」のmt.cgiのアドレスを自分の環境に合わせて設定する。

これで、MovableTypeのエントリー作成画面を表示すると新しいボタンが追加されているはずです。

「はてなダイアリー検索」と「アマゾンのアフィリエイトリンクの挿入」をしたい場合には、「ツール」→「Manage User Scripts」から編集したいスクリプトを選んで「edit」を押して、スクリプトの初めの方にある「var HatenaId = ”;」と「var AmazonId = ”;」の”の間にそれぞれのIDを設定すると使えます(たぶん)。

実は私の環境だと、「edit」ボタンを押しても反応がないです(ノД`)シクシク
同じ症状の方がいたら、一度スクリプトを自分のPCに保存してから、メモ帳などで開いて編集して保存し、Firefoxにドラッグ&ドロップで入れてあげると、上に変なバーがでてきて「インストールしやがりますか?」と聞いてくるので「Install」ボタンを押してあげればインストールできると思います。

ちなみに、私はjavascriptもcssも全然知らないので、このスクリプトの中身を全部把握して修正してるわけじゃないです。
私の環境以外では動作がヤバイかもしれませんので、試してみる方はお気をつけて・・・m(。_。;))m ペコペコ…

で。せっかくの機能を使わないのもアレなので、とりあえず一つアフィリリンクをw

  1. 「アジアスケッチ」と編集画面に入力する。
  2. 「アジアスケッチ」の文字を選択して、「Amz」ボタンを押す。
  3. 一覧がでてくるので(これだと一つしかでてこないです)好きなのを選択する(今回は、一番左の画像付のリンクを選択)。
  4. リンクのコードが編集画面に挿入される。

で、完成したのが下のリンクです。わーい楽チン。

アジアスケッチ―目撃される文明・宗教・民族