現在のサイト構成
トップページに一つまとめ的なブログがあり、その配下に、サブブログを複数作成している。
さらに、サブドメインにも、一つサブブログがある。
利用サーバー:さくらレンタルサーバスタンダード
現在のテンプレートの状況
グローバルテンプレートに「バナーフッター」というモジュールテンプレートを作成し、それを、それぞれのブログで読み込んでいる。
グローバルテンプレートからインクルードしてのSSI表示だと、全てのブログのバナーを変更するためには、それぞれのブログのインデックステンプレートを再構築する必要があり、手間がかかる。
このカスタマイズの利点
直接SSI構文でバナーフッターをインクルードすることにより、トップブログのインクルード用インデックスファイルを更新するだけで、トップブログ配下のサブブログのバナーフッターの表示を一挙に変更できる。
トップブログ配下のサブブログのカスタマイズ手順
1 まず、バナーフッターを読み込む大元になるブログでSSIインクルード用の「バナーフッター」ファイルを作成
種類:インデックステンプレート
名称:バナーフッターインクルード用
出力ファイル:includes_c/bannerfooter.shtml
2 大元のブログで、モジュールテンプレート「バナーフッター」を作成し、1をインクルード
種類:モジュールテンプレート
名称:バナーフッター(現在、全ブログのバナーフッターは「バナーフッター」というテンプレートでインクルードされているため)
テンプレート内容:<!--#include virtual="/includes_c/bannerfooter.shtml" -->
※<>は、全角で表示しています。
サーバーサイドインクルード:チェックを入れる
3 トップブログを再構築
以降は、「バナーフッターインクルード用」インデックステンプレートを更新するだけで、トップブログの全ページのバナーフッターを一度に変更できる。
4 各ブログでの作業
各サブブログで、モジュールテンプレート「バナーフッター」を作成し、1で作成したファイルをSSIで直接インクルードする。
SSIの相対パスに注意!
種類:モジュールテンプレート
名称:バナーフッター
テンプレート内容:<!--#include virtual="../../includes_c/bannerfooter.shtml" -->
※<>は、全角で表示しています。
サーバーサイドインクルード:チェックを入れる
5 各ブログを再構築して、フッターの表示を確認
6 トップブログのバナーフッターインクルード用ファイルを更新し、各ブログのフッターを確認。変更されていたら、作業終了。
サブドメインがある場合
一つのブログとして機能しているブログ群の中に、サブドメインがあると、ちとやっかいです。
今一つSSIも理解できてないのですが、
サーバ?[トップブログフォルダ]?[includes_c]?[インクルード用ファイル]
サーバ?[サブドメインフォルダ]?[includes_c]?[モジュールテンプレートで作成されるファイル]
という構造の場合、インクルードの書き方を
<!--#include virtual="../../トップブログフォルダ/includes_c/bannerfooter.shtml" -->
にすれば、いいのかな、と思ったのですが、エラーが起きて、うまくいきませんでした。
そこで、下記のとおり、カスタマイズしました。
1 最初に作ったトップブログのバナーフッターインクルード用の内容をグローバルテンプレートに転記。
モジュールテンプレート名例:グローバルバナーフッター
2 トップブログの内容を変更
インデックステンプレートに作成したバナーフッターインクルード用の中身を、
<$mt:include module="グローバルバナーフッター"$>
に変更する。
3 サブドメインブログ
トップドメインブログと作成内容は一緒。
グローバルバナーフッターをインクルードすることで、トップブログと、サブドメインブログでも同じバナーフッターとなる。
トップブログ配下のブログカスタマイズに変更はなし。
4 この場合は、トップブログとサブドメインブログのそれぞれのバナーフッター行くルード用テンプレートの再構築が必要となる。
※管理人もスタンダード・プレミアムを利用中!
▼ さくらのレンタルサーバ
コメントする