システムテンプレートとその他のテンプレートを振り分ける

システムテンプレートとその他のテンプレートを振り分ける

Posted at September 24,2008 1:23 AM
Tag:[Customize, MovableType, System]

Movable Type 4.1 以降で、システムテンプレート(コメントプレビュー/コメント完了/検索結果)とその他のテンプレートで処理を振り分けるカスタマイズです。

「Google Adsense の広告を検索結果ページだけに表示しない方法」ということで、以前にご質問を頂いたものを情報展開しておきます。

なお、このカスタマイズは、システムテンプレートの「ダイナミックパブリッシングエラー」や「ポップアップ画面」を利用していないことを前提にしていますので予めご了承ください。

1.システムテンプレートとその他のテンプレートで処理を振り分ける

システムテンプレートでは、変数 system_template に 1 が設定されるので、これを利用してシステムテンプレートとその他のテンプレートを振り分けます。

<mt:unless name="system_template">
システムテンプレート以外で表示
<mt:else>
システムテンプレートで表示
</mt:unless>

2.システムテンプレートをさらに振り分ける

冒頭に記した、「Google Adsense の広告を検索結果ページだけに表示しない方法」です。

システムテンプレートのコメントプレビュー/コメント完了ページと検索結果を振り分ける場合は、次のように変数 body_class を利用します。コメント関連のシステムテンプレートは変数 body_class に mt-comment -xxxxx という値が設定されます。

<mt:unless name="system_template">
システムではないページで表示
<mt:elseIf name="body_class" like="mt-comment">
コメントプレビュー・コメント完了ページで表示
<mt:else>
検索結果で表示
</mt:unless>

Adsensen のコードを最後の MTElse タグブロックに含めなければ、検索結果ページだけ非表示になります。

上記以外にも色々な振り分け方法があると思いますので、試してみてください。
また検索結果テンプレートだけに何らかのユーザ変数を設定しておけば、「ダイナミックパブリッシングエラー」や「ポップアップ画面」を含め、検索結果テンプレートだけを振り分けることが可能です。検索結果テンプレートを判定するには、変数 search_results で判定できます。

Movable Type 4.2 パーフェクトガイド」をお持ちの方は、213ページ~214ページに関連する変数を掲載しています。

Movable Type 4.2 パーフェクトガイドMovable Type 4.2 パーフェクトガイド
荒木 勇次郎

毎日コミュニケーションズ 2008-07-31
売り上げランキング : 9985

Amazonで詳しく見る
by G-Tools

2008.10.10
検索結果テンプレートの判定に関する記述を変更しました。

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)