月別アーカイブのリンクバグの原因が判明
以前の記事なにやらテンプレがおかしい・・・にて
今頃になってテンプレートが一部おかしい事に気が付きました。おかしいところはサイドバーの月別アーカイブの部分。いまだと9月と8月のリンクがあるのですが両方とも9月の頁へリンクしてしまいます。
といった事を書きました。
Movable Typeは記事のURIを自由に変更できますので /idx/2005_11.php といった具合にしたかったのです。コメントで真琴さんに指導して頂いて上手くいっているように見えました。
しかし、昨日Google Sitemapを設定していたらリンクエラーで月別アーカイブのURIが拾われていました。現在8月、9月、10月、11月とアーカイブがあります。だけどGoogle Sitemapは8月と9月だけエラーで拾ってくれませんでした。FTPで繋いで調べてみると8月と9月だけアーカイブHTMLが生成されません。リビルドし直しても生成されない・・・。
デフォルトのテンプレートにしても生成されません。それでもう一度設定箇所を見直そうとあれこれと見てみました。そうしましたらMTの設定画面で月別アーカイブのところを
idx/<$MTArchiveDate format="%Y_%m"$>.php
といった具合に指定しました。これでMT2.6系の時は上手くいっていたような気がしましたが、原因はこの指定がまずいということでした。ローカル環境にMTをインストールして↑の設定にすると8月、9月、10月、11月のアーカイブは全て何故か11月のリンクになってしまいます。真琴さんの教えてくれたテンプレートタグにしても同じでした。
このMT設定画面での月別アーカイブのアーカイブ・マッピングを次のようにしたら問題なくリンクできるようになりました。
idx/%y_%m.php
これで全て解決。あの悩んだ日々はなんだったんだろうと・・・。これで思うのは俺が最初に書いた
idx/<$MTArchiveDate format="%Y_%m"$>.php
の書き方が駄目だったのだろうか?ま、解消したからどっちだっていいか。
(追記 #1) MT3.2になってからエントリー投稿画面でファイル名を自分でして出来るようになりました。これは俺にとって嬉しい機能だったので、うちのMTは全て自分でファイル名を指定してあります。それでバグかどうかは分かんないんだけど、MTのログをエキスポート/インポート機能を使うとファイル名は復元してくれません。エキスポートした時にファイル名のデータがない。
これって凄い困りませんか?サーバ移転する時とかにエキスポートしてやるのが普通だと思うんだけど、それでデータを落としてインポートしてもファイル名は復元できないと・・・。エントリーたくさんある場合はまた自分で入力するのめんどくさすぎだよ。
そこでお願いがあるんですが、MTの有償パックを購入された方がいたらからシックスアパートに、将来のVerアップにてエキスポート/インポート機能でファイル名まで出力する予定があるか聞いてください。自分で聞いてみようと思ったんだけど無償版を使っている人はサポートしてもらえないそうなので・・・。(追記 #1 ここまで)
(追記 #2 11/25 22:50) もう一度アーカイブ・マッピングの月別アーカイブを
idx/<$MTArchiveDate format="%Y_%m"$>.php
にしてHTMLファイルを消してリビルドしてみたら今度はキチンとリンクがはられました。テンプレート自体は以前と同じものを使っている(CSSだけ変えた)ので何が悪かったか自分でもよく分かりません。とりあえずマッピングは idx/%y_%m.php にしておきます。(追記 #2 ここまで)
(追記 #3 11/25 23:59) ローカル環境にMT3.2をインストールして、もう1回確認してみたところうまくいきました。前回試した時にレンタルサーバ、ローカル環境ともに
idx/<$MTArchiveDate format="%Y_%m"$>.php
にてリンクがおかしくなっていたのは原因不明です。うーーん。なんでだろ。大変お騒がせしました。
コメント