MT4で、SSI使用時にサイドバーでエントリーアーカイブテンプレートにのみ、広告を表示する方法

| コメント(0) | トラックバック(0)

MT4サイドバーは、SSI利用時、基本全て同じ

管理人は、MT4をSSI(拡張子.shtml)を使って運用しています。サイドバーは、インデックステンプレートを更新するだけで、すぐに全部のファイルに表示されるので、とてもありがたいのですが・・・。

サイトによっては、エントリーアーカイブのサイドバーにだけ、広告を表示して、mainindexには、広告を表示したくないサイトもあったりします。

そこで、あれこれ試してみたのですが、なかなか正攻法では表示できず、試行錯誤の末、以下の方法にたどりつきました。

SSIの構文を直接記述します。

ちなみに、サーバはさくらインターネットのレンタルサーバスタンダードです。

自己責任でよろしく。

サイドバー用広告枠をインデックステンプレートで作成

まず、エントリーアーカイブに表示させるサイドバー広告用のテンプレートをMT4の管理画面から作ります。

インデックステンプレート:「サイドバー広告上」
出力ファイル名:includes_c/kokoku.shtml

ここで、出力ファイルをincludes_cフォルダに作るのがみそです。

なぜ、インデックステンプレートで作るかというと、モジュールテンプレートで作っても、メインインデックスファイルにインクルードしないモジュールは、再構築した実ファイルがinclude_cフォルダに作成されないからです。

サイドバー表示用のインデックステンプレートを作成

ウィジェットセットのみのshtmlファイルを作成します。

ファイル名:任意/サイドバーウィジェットセット用など
内容:<$mt:WidgetSet name="ウィジェットセット名"$>
出力ファイル名:includes_c/sidebar.shtmlなど

各ブログのサイドバーテンプレートモジュールを書き換えます。

<div id="beta">
<div id="beta-inner">
<!--#include virtual="/includes_c/sidebar.shtml" -->
  </div>
</div>

SSIは、チェックを入れて、オンにします。

エントリーを投稿した時に、サイドバーの最新記事の表示がおかしくなる場合も、たぶんこのカスタマイズを使えば、修正されるはずです。

こちらのブログ記事を参考にさせていただきました。ありがとうございます!

▼ MT4.2: ウィジェットをインデックステンプレートとして作りSSIインクルードする方法:max engineering

エントリーアーカイブテンプレート書き換え

次に、エントリーアーカイブのテンプレートで、「サイドバー」をインクルードしている部分を、書き換えます。

先ほど作った、サイドバー広告上のファイルを直接SSIで読み込みます。

<>は、半角に置き換えてください。

元の状態

<$mt:include module="サイドバー"$>

を、

<div id="beta">
<div id="beta-inner">
<!--#include virtual="/includes_c/kokoku.shtml" -->
<!--#include virtual="/includes_c/sidebar.shtml" -->
  </div>
</div>

に変更します。

これで、再構築すると、エントリーアーカイブのみ、広告が表示されているはずです。

複数ブログを使っている場合

なお、たとえば、トップのブログがあって、さらにその下のフォルダにサブブログを作っている場合は、

エントリーアーカイブテンプレート、サイドバーのSSIの記述、

<!--#include virtual="/includes_c/kokoku.shtml" -->
<!--#include virtual="/includes_c/sidebar.shtml" -->

を、

<!--#include virtual="/includes_c/side-kokoku-top.shtml" -->
<!--#include virtual="/includes_c/sidebar.shtml" -->

に書き換えると、それぞれのブログのincludes_cフォルダを見に行ってくれます。

2日間、考えてやっと出来ました。ああ、疲れた。

※管理人もスタンダード・プレミアムを利用中!
▼ さくらのレンタルサーバ

トラックバック(0)

トラックバックURL: http://kodomono.sakura.ne.jp/mt/mt-tb.cgi/891

コメントする

アーカイブ