Movable Type の PHP モジュール化の仕組みについて(その4:再構築オプション利用方法)
この回ではモジュール化による再構築オプションの有効な利用方法について説明します。
「再構築オプション」は各テンプレート編集画面の右上にあるチェックボックスを指します。このオプションはユーザー・マニュアル:テンプレートの編集にある通り、チェックボックスにチェックをつけるとエントリー投稿時等に再構築対象となり、逆にチェックを外すとテンプレート編集画面等から再構築をしない限り情報は更新されません。つまりモジュール化において「再構築オプション」にチェックをする・しないが、再構築時間短縮の重要なポイントになります。
ということでチェックするための目安となる表を作ってみました。
モジュール化対象データ | 再構築が必要な契機 | チェック要否 |
ブログタイトル・バナー・バージョン等 | 管理画面等からの変更時 | 不要 |
カレンダー | 次表参照 | |
最近のエントリー | ||
カテゴリーリスト | ||
月別アーカイブリスト | ||
最近のコメント | コメント投稿時 | 要 |
最近のトラックバック | トラックバック受信時 |
チェック要否の要・不要は主観的な判断です。タイトル等の恒常的に普遍なモジュールは基本的に再構築対象とせず、「最近のコメント」「最近のトラックバック」のモジュールは「再構築オプション」にチェックをつけておかないとコメントが投稿された時にコメント内容がリアルタイムにページに反映されなくなります。
カレンダー?月別アーカイブリストについての再構築要否については再構築契機を細分化できるので、次表に分けてみました。
データ | 再構築が必要な契機 |
カレンダー | その日の最初のエントリー投稿時 |
最近のエントリー | エントリー投稿時(更新時は不要) |
カテゴリーリスト | 件数表示:エントリー投稿時 件数非表示:新カテゴリーでのエントリー投稿時 |
月別アーカイブリスト | 件数表示:エントリー投稿時 件数非表示:月の最初のエントリー投稿時 |
カテゴリーリスト・月別アーカイブリストの「件数表示・非表示」の意味は次の通りです。
例えば月別アーカイブリストにエントリー件数を表示していない(=件数非表示)場合、ある月のリンク(月別アーカイブページへのリンク)を月別アーカイブリストに追加するためには、その月の最初のエントリー投稿後に「月別アーカイブリスト」のモジュールを一度だけ再構築すればよく、このモジュールは次月まで再構築する必要はありません。ただしエントリー件数を表示している(=件数表示)場合はエントリー投稿後に再構築しないと件数が反映されません。
カテゴリーリストも同様です。
基本的には、タイトル等のスタティックデータ用モジュールを除いた全てのモジュールに再構築オプションをチェックしておけば利便性が良いのですが、レンタルサーバ等で500エラーが頻発する場合、再構築オプションのチェックを外し、エントリー投稿後に必要なモジュールを個別に再構築するのが良いのではないかと思います。
削除動作については管理メニューから再構築が促されるので省略しています。
それぞれのモジュールを個別のインデックステンプレートとして登録すると、数が増えてメニューや管理が煩雑になるので、いくつかのモジュールをまとめてひとつのインデックステンプレートとするのもよいでしょう。またアーカイブページによってモジュールのレイアウトが異なる場合は、レイアウト用の中間的なモジュールを作ると個別モジュールが再利用できて便利です。
その1:概要 |
その2:具体的動作とMTIncludeとの違い |
その3:変更方法 |
その4:再構築オプション利用方法 |
- Movable Type 4 の PHP モジュール化
- MTInclude タグによる SSI(サーバサイドインクルード)不要なインデックステンプレートのモジュール化
- .htaccess によるリダイレクト
- Movable Type の PHP モジュール化の仕組みについて(その3:変更方法)
- Movable Type の PHP モジュール化の仕組みについて(その2:具体的動作とMTIncludeとの違い)
- Movable Type の PHP モジュール化の仕組みについて(その1:概要)
- テンプレート・モジュールの利用
≫ MTのモジュール化。 from TOY COZY MUSEUM 別館
個人的にもとてもタイムリーというか、MTのモジュール化について、「小粋空間」様が非常にワカリやすく数回に分けて解説してくださっていますので、非常に助かっておりま... [続きを読む]
≫ モジュール化に挑戦! from Vinyl Lab. Blog
便利そうなテクニックを発見 Movable Typeばかりいじくっている今日この... [続きを読む]
≫ MovableType ダイナミックパブリッシング from イベント・レンタル屋の情報共有
大阪本社の松本です。 本日、このブログとは別のMovableTypeで、先日に正式リリースされたバー... [続きを読む]
≫ PHP化による各部のモジュール化 from Magic Trap
今回はMovableType3.2-ja-2のテンプレート出力をPHP化した場... [続きを読む]
こんばんは・・・。
とてもとても為になる連載に感謝しています。モジュール化について、根本的なトコロが解ってなかったワタシには、一筋どころか二筋、三筋(笑)・・・の眩しい光が差し込んだようで、とても助かりました。今後も解りやすい解説に期待しております。
>toycozyさん
こんばんは。
記事参照&トラックバックありがとうございます。
2回ほどで終わるつもりだったのですが、意外に書くことがいっぱいあって結構な量になってしまいました。(笑)
とりとめのない内容になってしまいましたがお読みくださりありがとうございます!
いつもお世話になっています。
このコンテンツ内容とは少ししか関連性がないのですが、どうしても解決しない問題があるので質問させてください。
こちらで配布されているテンプレートを使用していないのでマナー違反かもしれませんが、再構築時に500エラーが出て困っています。
色々試したのですが、どうもアーカイブ・エントリーの再構築時のみエラーが出るようです。アーカイブ・エントリーからエラーが出るので全てを再構築する、と選んだときも500エラーが出てしまします。
他の個別のアーカイブにおける再構築は正常にできます。
サーバーはロリポップを使用しています。ロリポップに問い合わせたところ、サーバーは正常に作動していることくらいしかわからないとのことでした。
エントリー数は全25件、カテゴリーは5つに分けています。
25件までは普通に全体の再構築を行えたのですが、26件目からは500エラーが出るようになりました。
何日か奮闘して、どうしようもないのでまた新しくブログを作ってはじめからやり直したのですが、やっぱり26件目から全体の再構築時に500エラーが表示されてしまします。
一体どこを直せばよいのかアドバイスお願いします。
>みずほさん
こんにちは。
本日投稿したMovable Type で再構築エラーになる場合の原因と対処が参考になれば幸いです。
それではよろしくお願い致します。
yujiroさん、こんにちは。
ありがとうございます。サイドバーの過去記事を削除して解決できました。よくよく違う記事でのコメントを見れば、同じ質問をしている人がたくさんいたのですね。
お手数をおかけしましてすいません↓
>みずほさん
こんばんは。
ご連絡ありがとうございました。
解消されたようでなによりです。
ではでは!
yujiroさん
こんにちは。
この記事も非常に参考になりました。
PHPモジュール化のおかげでカスタマイズが劇的に楽になりました。ありがとうございます。
私も稚拙ながら関連する記事を書いたのでこの記事にトラックバックさせて頂こうと思ったのですが、その際に403エラーを返してきました。現在は受け付けてないのでしょうか?
>MTさん
こんばんは。
コメント&トラックバックありがとうございました。
エラーがたまに返送されるようですのでお許しください。
ではでは!
はじめまして。
現在PHP化を検討しているのですが、
Perlで作られたプラグインが使用できなくなるという情報をよく目にするため、
踏み切れずにいます。
例えば、「最近のエントリー」のような全ページ共通ではあるが、
エントリーを追加した場合に更新されるべき内容の部分を
インデックステンプレートとして書き出しておいて、PHPで読み込むようにしたいと考えています。
このような用途だけであれば、
Perlで作成されたプラグインを使用できそうな感じがするのですが、
そのような記述はどのサイトでも確認できないため、踏み切れない状態です。
よろしければ教えていただけないでしょうか。
>匿名さん
こんばんは。
ご質問の件ですが、細かい説明は省略しますが、ダイナミックパブリッシングを使用しなければ、PHP化(スタティックパブリッシングでファイルの拡張子を.php にするだけ)でもプラグインは利用できます。
ご質問の方法も大丈夫だと思います。
それではよろしくお願い致します。
> yujiro さん
ありがとうございます。
ダイナミックパブリッシングさえ使用しなければ
perlのプラグインも使用できるとのことで安心しました。
PHP化、やってみようと思います!!