NP_Lastmod|Google Sitemapsに最適
NP_Lastmod|Google Sitemapsに最適
- Author : pushman|Nucleus|2005-11-08 Tue 12:50
-
最近 Nucleus のフォーラムでよく目にしていた「Google Sitemaps」。恥ずかしながらつい先程まで、「Google Maps」と思い込んでいて「自分には関係のないことだ」とクールに振る舞っていたのですが、よーく見たら「Sitemaps」だったんですね。慌てて何の話なのかと調べまくると、とても親切な解説ページを発見。僕があーだこーだと書くと話がそれまくるのでこちらをご参照ください。
Google Sitemaps グーグル・サイトマップ(ベータ版)FAQとプロトコル全訳。新しいURL登録方法はSEOに必須になる?ということで、当サイトも慌てて Google Sitemaps 用のスキンとプラグインを導入しました。で、ほんの少しつまずいたので、メモ。
Nucleus で Google Sitemaps 用の xml を作成するには、NP_Moblog で有名な cles さん作成の「Google Sitemaps 対応 Nucleus Skin - NP_cles()」を使用させていただきます。基本的にはこれだけで問題ないのですが、Sitemap.php にまみおさんの改造を施し、コメントを頂いた時に更新日時の更新をしてくれる「NP_Lastmod」も利用させてもらいました。ちなみに、記事の修正をしたときに、その時の日時を記録してくれる「NP_UpdateTime」の利用も考えたのですが、僕は誤字脱字が多いのでひっきりなしに修正していることもあり、今回は導入しませんでした。
で、NP_Lastmod は
<%Lastmod%>というテンプレート変数が使えるようになります。この変数はアイテムの一番新しいコメントの日時、コメントがないときは記事の公開日時(NP_UpdateTimeがインストールしてあれば、最終更新日時)をUTCで表示します。
ということなのですが、僕の場合
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in NP_Lastmod.php on line 62というエラーが出てしまいました。
NP_Lastmod.php の62行目を見ると
if (mysql_num_rows($cr) > 0) { // NP_UpdateTime exists and update time recordedとあります。さっぱり意味が分かりません。ということで、試行錯誤の結果、以下のようにコメントアウトすることで解決できました。
// if (mysql_num_rows($cr) > 0) { // NP_UpdateTime exists and update time recorded // $lc = mysql_fetch_object($cr); // $lastmod = $lc->ut; // } else { $lastmod = $item->timestamp; // }62行目から65行目、67行目をコメントアウトですね。最初66行目もコメントアウトしたのですが、エラーこそでませんが日付が古きよき時代の1970年代になってしまいました。お気をつけください。
Google Sitemaps は全て英語なんで、ニュアンスしか分かりませんが、まあなんとかなるでしょう。作成した自分のサイトマップのアドレスを登録するだけです。Google のアカウントが必要だと思いますが、Gmail とかもってたらそれで大丈夫です。登録した xml が正しく記述されていたら、なんか特別な html ファイル設置しろ的なことを言われますので、素直に従います。ファイルの中身は空っぽでいいみたいです。それを設置して、Google 様にその旨お伝えすればやっとこさ申請完了。僕はいまだによく分かってないんですが、失敗しても特に害はなさそうです。
最後になりましたが、Nucleus の様々な形で支えてくださっている cles さん、higuchi さん、まみおさん。いつもありがとうございます。
-
-
Tag(s): NP_Lastmod

