月送りカレンダー・1日に表示されなくなる不具合を改善
月送りカレンダーには、毎月1日にエントリーが投稿されてない状態でコメントまたはトラックバックを受信すると、カレンダーが表示されない(「404 Not Found」が表示)という既知の不具合があります。このようになる原因は次の通りです。
例えばメインページは、コメントまたはトラックバックの受信を契機に全ての情報が再構築されます。その際、メインページに埋め込まれている月送りカレンダー表示用の iframe タグ
<iframe name="cal-iframe" src="<$MTBlogURL$>archives/calendar/<$MTDate format="%Y/%m/index" $>.php" ...(中略)... marginheight="0"></iframe>
にある MTDate(赤色)も更新され、新しい月が設定されることになります。ただしパスが示す先には新しい月のカレンダーが生成されていないため、結果的に「404 Not Found」となります。
新しい月のカレンダーはエントリー投稿によって生成されますので、この不具合を避けるためには、1日になると同時にエントリーするか、事前に次月の日付でテストエントリーを投稿し、即削除します(生成されたカレンダーは削除されません)。
で、月初めにこのエラーが出る度に「来月こそ早めにテストエントリーを」と固く誓うのですが、日が経つと忘れてしまい、同じ失敗の繰り返しです。そもそも力任せな解消方法なのが不本意です。
ということで解消方法です。以前はPHPによる対処を掲載していましたが、The blog of H.Fujimoto さんに MTタグによる解消方法を教えて頂きましたので(コメント No.22)、それをそのまま使わせて頂きます。
1.テンプレート修正
iframe タグの src 属性を下記のように変更します。これで常に最新エントリーの最終月を取得することができますので、1日にカレンダーが表示されなくなる不具合が解消します。
<iframe name="cal-iframe" src="<$MTBlogURL$>archives/calendar/<MTEntries lastn="1" sord_order="descend"><$MTEntryDate format="%Y/%m/index" $></MTEntries>.php" ...(中略)... marginheight="0"></iframe>
- Movable Typeのカレンダーに曜日を表示する方法
- Movable Typeのカレンダーに複数カテゴリのリンクを表示する方法
- Movable Typeでダイナミックカレンダーが表示されない不具合の対処
- Ajax ハイブリッド月送りカレンダー
- Ajax ダイナミック月送りカレンダー
- 複数ブログの情報をひとつのカレンダーにまとめて表示する
- Ajax 月送りカレンダー(jQuery・MT4版)
- 「Ajax 月送りカレンダー」の表示月をブログ記事の投稿月や月別アーカイブに連動させる
- 「Ajax 月送りカレンダー」で未来月のブログ記事を表示しない
- カテゴリー別 Ajax 月送りカレンダー(MT4版)
- Ajax 日めくりカレンダー(MT4版)
- Ajax 月送りカレンダー(MT4版)
- カレンダーの日付リンクのジャンプ先をエントリー・アーカイブに変更する
- Ajax 月送りカレンダー(縦型)
- Ajax 月送りカレンダー(横型)
≫ 毎月1日に慌ててエントリしなくていい月送りカレンダー from やむやむ
小粋空間 さん 「月送りカレンダー・1日に表示されなくなる不具合を改善」 を拝読... [続きを読む]
≫ 月送りカレンダーの不具合解消 from grumble
やりましたね?yujiroさん♪(゚▽^*)ノ⌒☆ やっと1日に「404 Not... [続きを読む]
≫ 月送りカレンダー・・・月初めの???を解消! from TOY COZY MUSEUM 別館
何もエントリーしないまま新しい月を迎えると、カレンダー部分に“Not Found”というエラー表示になっていました。デイ... [続きを読む]
≫ 月送りカレンダーの不具合を改善 from Luna's*PaPa
以前のエントリー月送りカレンダー(横型・リアルタイム版)設置で無事に設置できていたカレンダーですが、この度、小粋空間さんが不具合を改善する方法をエントリーされて... [続きを読む]
≫ カレンダーの自動生成 from SWEET WATER Web Server
今までの月送りカレンダーの弱点。 「月が変わる日にエントリーがないと、コメントや... [続きを読む]
≫ カレンダーの不具合を改善。 from :: monamona* ::
こないだ設置したカレンダーの不具合改善対策が出ているという事で 早速実施。 見た目には変わってないけど・・・ 月が変わったときにエラーが出ていたらしいが、今のと... [続きを読む]
≫ 月めくりカレンダーphp版 from あやの雑記
月めくりカレンダーのphp版です。 新しい月になったとき、その月の記事がないまま... [続きを読む]
≫ 「月送りカレンダー」の改善 from Sealion's Weblog
メイン画面右上に表示されている「月送りカレンダー」ですが、月が変わってから新規... [続きを読む]
≫ 月送りカレンダー from blog:ponpon-village.net
月も替わり、7月となりました。 ふとカレンダーを見ると、7月が表示されているのだ... [続きを読む]
≫ [喜] 月送りカレンダー・1日にちゃんと表示させよ! from 喜怒哀楽
5月1日にトップにカレンダーが表示されません。 過去に、このようなエントリーをし... [続きを読む]
≫ 月送りカレンダーの不具合を修正 from 気ままなコメント
月送りカレンダーにてその月のエントリーがない状態で
コメント、トラックバックを受信すると、カレンダーが表示されなくなっていました。 [続きを読む]
≫ 9月 from うだうだうだ
もう9月ですか、2005年入って4分の3年が過ぎたわけですね・・・。... [続きを読む]
≫ MTでカレンダーを自動更新するには from たかネット
MTが提供するカレンダーは、サイトの再構築が行われない限り、 MTCalenda... [続きを読む]
≫ 月めくりカレンダーが月初めにNotFound404になってしまう問題を解決 from 一体どうなんでしょう
小粋空間さんのトコに行ったら、... [続きを読む]
おはようございます。なんだかコンガラガッテわけがわからなくなったのですが、
ぴぃかぶぅは PHP化してないのに 月送りカレンダーにできてます。
これと、今回の「カスタマイズ対象のテンプレートファイルの拡張子が .php になっていることが前提」
っていうのとは、別物なんですよね?ひょっとして的外れなこと聞いてますか?
やむやむの方だけ、毎月1日に慌てて新しいエントリしなくてもいいようにしておきました。
カレンダーがちゃんと表示されてるので、たぶんOKだと思います。
>さえらさん
こんばんは。
早速のご利用ありがとうございます。
ご質問の件ですが、「別物」で正解です。例えば index.html でも月送りカレンダーは利用できるのですが、今回は index.html 自体にPHPスクリプトを埋め込みますので、index.php に変更する必要があります(説明が難しいですが、iframe を利用してPHPファイルを表示させる場合、呼び出し元のファイル(つまり index.html)はPHPでなくても問題ないのです)。
話を戻しまして、カレンダーが表示されていればOKです。
一応自宅のPCで何回も動作確認しましたが、あとは月初めにこのカスタマイズのバグが出ないことを祈ってます。(笑)
こんばんは。
早速変更させていただきました。有り難うございます。来月を迎える真夜中を楽しみにしてます(笑)。
こんばんわ?
おおっ!
以前から気になっていた「月が変わった時にエントリーがないと修正等が入ってもあくまでエントリーしないと自動的にカレンダーが作成されない問題(長いΣ('◇'*))」が改善できるのですね♪
いつもながらタイムリーなエントリー!挑戦してみます♪
おはようございます。月送りに リアルタイムもくっ付けてます。
ここまでは、index.htmlでもOKってことなんですよね?ぴぃかぶぅで 正常に動いてるから・・・
意味もよくわからずカスタマイズしてることも多いので、
何段階かに分けて手を加えると、なにがなんだかわかんなくなったりするんです、
修行が足りませぬなぁ。。。。┐( ̄ー ̄)┌
おはようございます。
1日に表示されなくなる不具合が改善されたのですかー!
嬉しいですぅ!
カスタマイズは、来月1日に皆さんのブログを確認後、挑戦させていただきたいと思います(笑)
慎重なミッチで申し訳ありませんー。
またその時は改めてエントリー等させていただきます。
よろしくお願いいたしまっす!
おはようございます。
改善方法、早速修正させていただきました。
いつもありがとうございます^^
来月0時過ぎ、ドキドキしながら自分のブログ観察してみたいと思います♪
おはようございます。
早速月送りカレンダーの不具合を修正してみました。
見た目に変化がないので、本当にできてるかどうか不安ですが・・・(;´Д`)
はじめまして。
カレンダーを1行にすることも含め、参考にさせていただきました。ありがとうございます。
>toycozyさん
こんばんは。
ご利用ありがとうございます。
一人失敗したら全員失敗という可能性も。(笑)
>WINDさん
こんばんは。
ご利用ありがとうございます。
パス変更されていたようですが、うまくできたようでよかったです!
>さえらさん
こんばんは。
どういたしまして。
私はかなり訳がわからなくなっています(笑)。
>ミッチさん
こんばんは。
コメントありがとうございます。
それではまたのご利用お待ち申し上げます。(笑)
>Mirayさん
こんばんは。
ご利用ありがとうございます。
ちなみに月跨りで表示できなくなったら私のせいです(笑)。
結構プレッシャーだったりします(笑)。
>Takeさん
こんばんは。
ご利用ありがとうございます。
正常に表示できていれば8割成功です(意味不明)。あとは運を天に任せましょう!
>mueruさん
はじめまして。
ご利用ありがとうございます。
本カスタマイズで不具合ありましたらご連絡ください。
それでは今後ともよろしくお願い致します。
mueruからweblogのハンドル名と同じにhayakaに変更した者です。
iframeを使わずにカレンダー及びこの「1日に表示されなくなる不具合を改善」を実現できるやり方はありますか?
あったら教えていただけませんか。よろしくお願いします。
>hayakaさん
こんばんは。
ご質問の件ですが、iframe を使わない方法(横型)はリアルタイムカレンダー(改)の2.3項で実現できます。この場合、月送りはできません。
またこの方法であれば、本記事のカスタマイズは不要です(不具合は発生しません)。
以上です。
それではどうぞよろしくお願い致します。
ちゃんと探さなくてすみません。
ありがとうございます。
お手数をおかけしました。やってみます。
>hayakaさん
こんばんは。
ご連絡ありがとうございました。
ではでは!
リアルタイムカレンダー(改)で実現できました。
メインページにしかカレンダーを表示していないのでこの内容で十分でした。
ありがとうございます。
>hayakaさん
こんばんは。
ご連絡ありがとうございました。
ではでは!
参考にさせていただき月変わりしましたが、無事動作しているようです。ありがとうございました。
yujiroさん、*オメデトーゴザイマス♪c(*゚ー^)ノ*・'゚☆。.:*:・'☆'・:*:.。.:*:・'゚:*:・'゚☆キラキラ
無事エントリーしなくても1日に表示されました。
ご報告まで。
>sealionさん
こんばんは。
ご連絡ありがとうございました。
密かにドキドキしてましたが無事に効いたようで良かったです。
>やむさん
こんばんは。
コメントありがとうございました。
これで毎月1日が楽になりますね。
yujiroさん、お久しぶりですv
うちも、ようやくこちらの改善策を導入しましたー。
多分、成功と思われます(笑)
記事の紹介とTBも打たせて頂きました。
ありがとうございましたー
>ミッチさん
こんばんは。
ご利用&トラックバックありがとうございます。
7/1が無事に過ぎてよかったです(笑)。
こんにちは。
最後のエントリーの月のカレンダーを表示するのであれば、PHPを使わなくても、テンプレートタグを組み合わせて、src属性を以下のようにすれば良いのではないかと思います。
src="<$MTBlogURL$>archives/calendar/<MTEntries lastn="1" sord_order="descend"><$MTEntryDate format="%Y/%m/index" $></MTEntries>.php"
こんにちは。
いつもお世話になっております。
固定3カラムのテンプレートと月送りリアルタイム(横型)カレンダーを利用させていただいております、sleepyといいます。
今日9月1日に、エントリーがない状態でコメントを受信して、カレンダーが表示されなくなってしまいました(^^;。当記事の件を知らなかったものですから、最初は月送りカレンダー(横型)を入れなおしたりしていたのですが、いろいろ見ていたら、当記事を発見して、ほっとして処理しました。しかし・・・訂正されません(T^T)。相変わらず、「404 Not Found」が表示されてしまいます。これは、いったんこのような不具合が発生してしまったら、次の日になるまでと反映されないものなのでしょうか・・・。
それから、関連性のある問題なのかはわかりませんが、突然「個別エントリーアーカイブ」だけ突然再構築できなくなってしまいました。ほかのはできるのですが、「個別エントリー」を再構築すると、「サーバーがみつかりません。ページを表示できません」となってしまいます。もし、このような不具合について何かご存知でしたら、アドバイスいただけますと大変ありがたく存じます。よろしくお願いします・・・。
>sleepyさん
こんにちは。
こちらこそお世話になります。
ご質問の件ですが、現在メインページのファイル名は index.php になっていると思いますが、ローカル・サイト・パスにある index.html に優先的にアクセスしてしまっているようです(これはレンタルサーバの仕様です)ので、index.html を削除してあげれば(index.php が)正常に表示されると思います。
なお、個別エントリーアーカイブ再構築の件は、500エラーでしたら、おそらくサーバの負荷によって発生するようです(再構築のタイムアウト・エラー)。
ということで、mt.cfg にある個別エントリーアーカイブ再構築単位
# EntriesPerRebuild 40
を
EntriesPerRebuild 20
等に変更されると症状が改善される可能性があります(再構築単位を40から20に減らして応答を早くするという策です)。行頭の「#」と半角空白は削除してください。
サーバの性能に依存するので時間帯(夜間等)によって発生することが多いようです。
問題内容の解釈が誤っていたらお許しください。
以上です。
それではどうぞよろしくお願い致します。
>yujiroさん
早速のお返事、ありがとうございました!!
おっしゃるとおり、index.htmを削除したら、うまくゆきました。ほかのアーカイブテンプレートなども、上記のページで.phpに変更したら、うまく作動しました。ただ、個別エントリーだけは変更方法がわからなかったのですが・・・。
個別エントリーアーカイブ再構築の件も、こちらのサイトの過去ログで検索して見つけたのですが、そちらに書かれてあった解決用プラグインは3.171-jaバージョンでは作動しないようだったので導入をあきらめ、yujiroさんの上記アドバイスにしたがって変更してみたら、なんとか再構築するようになりました。でも、データベース(MySQL)の使用経験はないため、とりあえずこのまま運行させることに・・。将来的には、容量が大きいFC2ブログなどに、過去ログを移行させるなどして、サーバー負荷を軽減するしかないかもしれませんね。(^^;
取り急ぎ、お礼まで!(^^)
これからもどうぞよろしくお願いいたします!
まずはメインページだけで、この月送りカレンダーが1日表示しなくなる件の修正を上記の例の通りに行ってみたのですが・・・
上記のPHPスクリプトでは、/×××/archives/calendar/年/月/index.phpファイルが存在しない場合は、カレンダーが表示されないですよね。
それではと、/×××/archives/calendar/年/月/index.htmlファイルをindex.php名前を変更すると、カレンダーは表示されるのですが、月送りができません。
なので/×××/archives/calendar/年/月/index.htmlファイルは、そのままにして、月送りカレンダーのときに設定した、アーカイブの設定画面で、Calendarテンプレートの拡張子をphpにして再構築してみました。
そうすると、/×××/archives/calendar/年/月/ディレクトリには、index.htmlとindex.phpの両方できるので、8月以前の月に関しては月送りできるのですが、9月1日の記事を作成すると、8月から9月への月送りのリンクが表示されません。
・/×××/archives/calendar/年/月/ディレクトリの下には、index.htmlとindex.phpの両方必要なんでしょうか?
・アーカイブの設定画面で、Calendarテンプレートの拡張子をphpにする必要はあるのでしょうか?
・カレンダーテンプレートの<MTArchivePrevious>タグと<MTArchiveNext>タグ内にあるリンク先の拡張子はhtmlからphpにするに必要があるのでしょうか?
よくしくみを分からないまま修正しているので(^^;的外れなこともあるかと思いますが、うまくいく設定方法を教えてくださいm(_ _)m
ちゃんと質問の文字が表示されてなかったので、訂正します。
・カレンダーテンプレートのタグとタグ内にあるリンク先の拡張子はhtmlからphpにするに必要があるのでしょうか?
・CalendarテンプレートのMTArchivePreviousタグとMTArchiveNextタグ内にあるリンク先の拡張子はhtmlからphpにするに必要があるのでしょうか?
>sleepyさん
ご連絡ありがとうございました。
個別エントリーアーカイブの拡張子を php に変更する方法は「管理メニュー」の「ウェブログの設定」をクリックし右上の「アーカイブの設定」をクリックします。次ページ下の「個別」欄の「アーカイブ・ファイルのテンプレート」に、
<$MTEntryID pad="1"$>.php
を設定し、保存・再構築すれば同じディレクトリに .php ファイルが生成されます。個別エントリーアーカイブはURLにファイル名まで指定する筈ですので、旧ファイルを削除しなくてもので大丈夫だと思います。
以上です。
それではよろしくお願い致します。
>Minakoさん
こんばんは。
ご利用ありがとうございます。
ご質問の件ですが、前提として月送りカレンダーは通常版とリアルタイム版があり、前者はカレンダー用ファイルの拡張子は .html 後者は .php です。
それを踏まえてお答えします。
>index.htmlとindex.phpの両方必要なんでしょうか?
どちらか片方で結構です。ただしファイル名を index.html から index.php に変更された場合は、index.html を削除してください(サーバの仕様で .html という拡張子を優先して表示します)。
>Calendarテンプレートの拡張子をphpにする必要はあるのでしょうか?
リアルタイムカレンダーであれば php になっている必要がありますが、通常の月送りカレンダーであれば変更は不要です。この記事がリアルタイムカレンダーを前提に書いてしまっているのでその部分については不足していました。すいません。
>タグ内にあるリンク先の拡張子はhtmlからphpにするに必要があるのでしょうか?
カレンダーファイルの拡張子にあわせてください。
php に変更された場合はこの部分も変更する必要があります。
まとめると以下のようになります。
メインページ等の拡張子:php
カレンダーファイルの拡張子:
通常カレンダー:html
リアルタイムカレンダー:php
本文でPHPに変更と書いてあるのはメインページ・カテゴリーアーカイブ・日付アーカイブ・個別エントリーアーカイブを指しています。
なお、上のコメントの8/5の壱さんの方法でも可能です。
以上です。
それではよろしくお願い致します。
お返事、ありがとうございました!
個別エントリーの月送りカレンダー表示の件も、yujiroさんのご指示とおりに設定して、うまく表示されるようになりました。感謝感激です(^^)。
これからもどうぞよろしくお願いいたします。
>sleepyさん
こんにちは。
ご連絡ありがとうございました。
うまくできたようで良かったです。
こちらこそ今後ともどうぞよろしくお願い致します。
カレンダーが表示されなくなり、修正を試みましたがやはり表示されませんでした。
こちらの修正箇所などが違っていたのでしょうか?
分からないため、おしえていただけないでしょうか?
>25hoursさん
こんにちは。
ご質問の件ですが、カレンダーを表示する iframe の src 属性(=カレンダーを表示するURL)が
http://25hours.jp/archives/calendar/2007/05/index.index
となっています。
拡張子が適正でないようですので、ここに対応する部分を修正すれば表示されるかもしれません。
なお修正例はタグの最後の方に ".php" とありますが、25hours さんの場合は、この部分を ".html" にしてください。
それではよろしくお願い致します。
index.index になっていたとは気づきませんでした。
直したところ、きちんと表示されているようです。
どうもありがとうございました。
>25hoursさん
こんにちは。
ご連絡ありがとうございました。
無事に直ったようで良かったです。
ではでは!