Movable Typeのパンくずリストでフォルダの代わりにウェブページを表示する

Movable Typeのパンくずリストでフォルダの代わりにウェブページを表示する

Posted at May 25,2011 2:00 AM
Tag:[Customize, MovableType, Page]

Movable Typeのウェブページのパンくずリストで、フォルダの代わりにウェブページを表示するカスタマイズを紹介します。

変更前
完成イメージ

変更後
完成イメージ

上記のサンプルで使っているウェブページとフォルダの関係は次の通りです。

ウェブページタイトル属するフォルダ
親ウェブぺージ親フォルダ
子ウェブぺージ子フォルダ
孫ウェブぺージ孫フォルダ

フォルダの階層は次の通りです。

親フォルダ
 └ 子フォルダ
   └ 孫フォルダ

1.カスタマイズ

次のサブテンプレートをウェブページテンプレートの任意の位置に設定します。

<$mt:FolderLabel setvar="folder"$>
<a href="<$mt:BlogURL$>">TOP</a> ≫
<mt:ParentFolders>
  <$mt:FolderLabel setvar="current_folder">
  <mt:if name="folder" ne="$current_folder">
    <mt:Pages folder="$current_folder" include_subfolders="0">
<a href="<$mt:PagePermalink$>"><$mt:PageTitle$></a> ≫
    </mt:Pages>
  </mt:if>
</mt:ParentFolders>
<$mt:PageTitle$>

1行目で再構築中のウェブページのフォルダを変数folderに保存します。3行目でウェブページが属するフォルダの親フォルダから現在のフォルダまで処理を繰り返します。

4行目のMTFolderLabelタグで繰り返し処理の中のフォルダを変数current_folderに保存し、1行目で保存した変数folderと比較して、等しくない場合、つまり自フォルダでない場合のみMTifタグの中を実行します。

6行目のMTPagesタグにはfolderモディファイアで処理するフォルダを限定し、さらにinclude_subfoldersモディファイアでサブフォルダを処理しないように設定します。これで処理中のフォルダに属するウェブページの情報を出力します。

2.パンくずリストにフォルダを表示するサブテンプレート

参考までに、冒頭画面の変更前の、パンくずリストにフォルダを表示するサブテンプレートも掲載しておきます。

<mt:if tag="PageBaseName" eq="index">
<$mt:SetVar name="exclude_current" value="1"$>
<mt:else>
<$mt:SetVar name="exclude_current" value="0"$>
</mt:if>
<a href="<$mt:BlogURL$>">TOP</a> ≫
<mt:ParentFolders exclude_current="$exclude_current">
<a href="<$MTBlogURL$><$mt:FolderPath$>/"><$mt:FolderLabel></a> ≫
</mt:ParentFolders>
<$mt:PageTitle$>
関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


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

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

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

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