ウェブサイトとブログでグローバルナビゲーションを共有する

ウェブサイトとブログでグローバルナビゲーションを共有する

Posted at December 2,2009 1:00 AM
Tag:[Customize, MovableType, Website]

Movable Type 5 でウェブサイトとブログでグローバルナビゲーションを共有する方法です。

方法は色々あると思いますが、ここではウェブサイトのテンプレートモジュールをグローバルナビゲーションとして利用する方法を紹介します。

1.グローバルナビゲーションのメニューにウェブサイトのメインページとブログのメインページを含むケース

次のように、ウェブサイトのメインページ(ホーム)と、ウェブサイト配下のブログのメインページ(ブログ名を使用)をウェブサイトとブログで共有する例です。

グローバルナビゲーション

1.1 ウェブサイトの「ナビゲーション」テンプレートモジュール

ウェブサイトのテンプレートモジュール「ナビゲーション」を新規作成し、次の内容を設定します。

<ul>
<li><a href="<mt:WebsiteURL />">ホーム</a></li>
<mt:Blogs include_blogs="children">
<li><a href="<mt:BlogURL />"><mt:BlogName></a></li>
</mt:Blogs>
</ul>

mt:WebsiteURL タグでウェブサイトのURLを出力します。また、ブログの情報は mt:Blogs ブロックタグを利用して出力します。その際、include_blogs="children" を設定することで、ウェブサイト配下のすべてブログが出力対象となります。

1.2 ウェブサイトで「ナビゲーション」を利用する場合

ウェブサイトの各テンプレートから「ナビゲーション」テンプレートモジュールを呼び出すには、次のmt:Include タグを使用します。

<mt:Include module="ナビゲーション" />

1.3 ウェブサイト配下のブログで「ナビゲーション」を利用する場合

ブログの各テンプレートから「ナビゲーション」テンプレートモジュールを呼び出すには、mt:Include タグを、mt:BlogParentWebsite タグで括ります。また、mt:Include タグに blog_id モディファイアを設定し、ウェブサイトのIDを設定します。

<mt:BlogParentWebsite>
<mt:WebsiteID setvar="website_id">
<mt:Include blog_id="$website_id" module="ナビゲーション" />
</mt:BlogParentWebsite>

mt:Include タグを mt:BlogParentWebsite タグで括ることで、mt:Include タグはブログが属するウェブサイトのコンテキストで動作します。つまり、「ナビゲーション」テンプレートモジュールに設定したテンプレートタグは、ウェブサイトのコンテキストで評価されます。

2.グローバルナビゲーションのメニューにウェブサイトのメインページ・ウェブページとブログのメインページ・ウェブページを含むケース

2.1 ウェブサイトの「ナビゲーション」テンプレートモジュール

ウェブサイトのテンプレートモジュール「ナビゲーション」を新規作成し、次の内容を設定します。

<ul>
<li><a href="<mt:WebsiteURL />">ホーム</a></li>
<mt:Pages>
<li><a href="<mt:PagePermalink />"><mt:PageTitle /></a></li>
</mt:Pages>
<mt:Blogs include_blogs="children">
<li><a href="<mt:BlogURL />"><mt:BlogName /></a></li>
  <mt:Pages>
<li><a href="<mt:PagePermalink />"><mt:PageTitle /></a></li>
  </mt:Pages>
</mt:Blogs>
</ul>

ウェブサイトのウェブページも、ブログのウェブページも、mt:Pages タグを利用します。ブログのウェブページは mt:Blogs タグを使ってブログのコンテキストで動作させます。

実際にはプライベートタグなどを使ってウェブページのフィルタリングを行なうと思いますが、ここでは説明を割愛します。

2.2 ウェブサイトで「ナビゲーション」を利用する場合

1.2 と同様です。

2.3 ウェブサイト配下のブログで「ナビゲーション」を利用する場合

1.3 と同様です。

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


トラックバック

一部のモジュールを統一化してみた from HashiMのたわごと(?)
MT5以降限定ですが,テンプレートを他のブログで共有することが出来ます.その方法やカスタマイズの仕方などを書いておきます. [続きを読む]

Tracked on December 6, 2009 6:05 PM
コメントする
greeting

*必須

*必須(非表示)


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

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

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

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