このサイトは、10個のブログをひとつのサイトとして運営していますが、デザインは、ポータルの「子育てママのこどもと.JP」のメインページインデックスと、「こどもの勉強・受験・入試」ブログの一部が違うだけで、後はほぼ共通です。
最初は、それぞれのブログでテンプレートを使っていましたが、効率的に運用するため、共通のテンプレートは、システムメニューのグローバルテンプレートへ移しました。そうすることによって、グローバルテンプレートを変更することにより、一気にすべてのテンプレートを変更することができます。
テンプレートモジュールのグローバルテンプレート化
テンプレートモジュールでは、たとえば、「ブログ記事の概要」、自作した「ブログ記事ナビゲーション」などをシステムメニュー内のグローバルテンプレートで作成しました。
方法は、それぞれのブログのモジュールテンプレートのうち、共通で使いたいテンプレートについて、同じテンプレート名で、同じ内容のテンプレートをシステムメニューのグローバルテンプレートで作成します。
その後、各ブログのモジュールテンプレートから、システムメニューで作成したモジュールテンプレートを削除します。
システムメニューと各ブログのメニューで同じ名前のテンプレートモジュールが存在した場合、各ブログメニューのテンプレート内容が優先されるようです。
ですから、システムメニューのグローバルテンプレートを利用したい場合は、その名前のモジュールテンプレートを各ブログで作らないことです。
逆に言えば、あるブログだけ別のテンプレートに差し替えたい場合は、そのブログだけ、同じモジュールテンプレート名で別の内容のモジュールテンプレートを作れば、ほかのブログとは異なった内容を表示させることができるはずです。
SSIを利用してサーバサイドインクルードを利用する場合
ただし、モジュールテンプレートでサーバーサイドインクルードを利用している場合は、少し工夫が必要です。
以下は、管理人が使用している、shtmlでのサーバーサイドインクルードについての説明です。
システムメニューのグローバルモジュールテンプレートは、各モジュールテンプレートテンプレートの設定を見ればわかるように、SSIの設定は表示されません。
ですから、その場合は、
- システムメニューのグローバルテンプレートモジュールに、共通で使用したい内容を登録
- グローバルテンプレートモジュール名は、各ブログのモジュールテンプレートとは異なるテンプレート名を設定
- そのグローバルテンプレートモジュールを、各ブログのテンプレートモジュールにインクルード
という作業を行います。
▼ 例
1.元のブログのモジュールテンプレート
テンプレート名:ほげほげ
テンプレート内容:<div class="zatto">ほげほげだよ</div>
2.システムメニュー内に作るグローバルテンプレートモジュール
テンプレート名:いんくるほげほげ
テンプレート内容:<div class="zatto">ほげほげだよ</div>
3.カスタマイズ後の元のモジュールテンプレート
テンプレート名:ほげほげ
テンプレート内容:<$mt:include module="いんくるほげほげ"$>
サーバーサイドインクルード:オン
これによって、システムメニューで作った共通のテンプレートモジュールをSSIで利用できます。
アーカイブ・インデックスでグローバルテンプレートモジュールを使用
インデックステンプレート、アーカイブテンプレートもサーバーサイドインクルード時と同じように、作成することで、グローバルテンプレートモジュールを使用することができます。
ちなみに、インデックステンプレート、アーカイブテンプレートでグローバルテンプレートモジュールをインクルードしたカスタマイズをした場合でも、スタイルキャッチャーを適用してみると、適用されました。
以上、グローバルテンプレートモジュールを利用した効率化のメモでした。
※管理人もスタンダード・プレミアムを利用中!
▼ さくらのレンタルサーバ
コメントする