というエントリーが小粋空間にもあるように、月初になるとカレンダーが表示されないという不具合をしっかりと体験しました。なぜそうなるのかという理由は、そちらを参照していただければわかりますが、これをどうにかしようとするならば
新しい月のカレンダーはエントリー投稿によって生成されますので、この不具合を避けるためには、1日になると同時にエントリーするか、事前に次月の日付でテストエントリーを投稿し、即削除します(生成されたカレンダーは削除されません)。で、月初めにこのエラーが出る度に「来月こそ早めにテストエントリーを」と固く誓うのですが、日が経つと忘れてしまい、同じ失敗の繰り返しです。
結構無理矢理です。(笑)
そこでその不具合を直すため、PHPを使用する方法が書かれているのでその通りにしてみたのですが、どうしてもどうしてもうまくいきません。phpファイルにアクセスすると「Parse error」(文法的に致命的欠陥がある)というエラーが出ます。
PHPでスクリプトに文法エラーがあると、
PHP Parse error: parse error, unexpected T_STRING in Command line code on line 1
なんて、エラーメッセージが出されます。 ここで、T_STRINGとは何かって疑問があるようなので、ちょっと取り纏めてみます。このエラーについては、PHPの整理とは無縁なメモ書きに書かれています。
PHPでスクリプトに文法エラーがあると、
PHP Parse error: parse error, unexpected T_STRING in Command line code on line 1
なんて、エラーメッセージが出されます。 ここで、T_STRINGとは何かって疑問があるようなので、ちょっと取り纏めてみます。
そもそもこれは何?
PHPが吐いているエラーメッセージです。入力されたPHPスクリプトに、文法エラーがある時に出されます。
parse errorというのは「文法的に間違っているよ」というエラーになります。 unexpected XXXXというのは、XXXXがあるけどそれはここにあってはいけないよ、って意味なのですが、困ったことにXXXXで示されているものはPHPの内部での表現であって、スクリプトでの表現とは違っていることです。 詳しくは後述します。
どこにエラーがあるの?
line XXXXと書かれた付近にあります。 しかし、必ずXXXX行目にあるというものではありません。 このエラーメッセージは、「XXXX行目を処理している時に構文エラーが検出されました」ということではありますが、このXXXX行目を直すのが正しいとは限らないのです。
私の場合は、on line 1で、明らかにパスがおかしい、と出ているのですがそのパスの設定はMTの「公開」設定でしている絶対パスと全く同じなのに、なぜエラーがでるのかがわからない…。困った…これはもう無理矢理毎月テストエントリーをするしかないのか…と諦めていたのですが、コメント部分にH.Fujimoto氏(「「ブログ簡単パワーアップ Movable Type スーパーカスタマイズテクニック」の著者の方だったとは!)が
最後のエントリーの月のカレンダーを表示するのであれば、PHPを使わなくても、テンプレートタグを組み合わせて、src属性を以下のようにすれば良いのではないかと思います。
src=”<MTBlogURL$>archives/calendar/<MTEntries lastn=”1″ sord_order=”descend”><$MTEntryDate format=”%Y/%m/index” $></MTEntries>.php”
と書いておられて、それを早速試してみました。すると最後のエントリーの月のカレンダーが表示されるようになりました。簡単に出来るので、php化が出来ない人はこちらの方法を試してみましょう。