ウェブページとフォルダを階層表示する方法
MTでウェブページとフォルダを階層表示する方法です。
MT4.21までのデフォルトテンプレートに含まれるウィジェット「ページ一覧」ではウェブページは階層表示されはするものの、サブフォルダは階層表示されません。
例えば6つのフォルダと6つのウェブページがある環境で、それをデフォルトテンプレートのウィジェット「ページ一覧」で表示すると以下のようになります。
- ウェブページ1
- フォルダ1
- フォルダ2
- ウェブページ5
- フォルダ5
- ウェブページ2
- ウェブページ4
- フォルダ3
- ウェブページ3
- フォルダ6
- フォルダ4
- ウェブページ6
6つのフォルダの内のいくつかはサブフォルダなのですが、上の出力例では全く区別が付きません。
デフォルトテンプレートを改造した場合は次のようなコードになります。
<MT:IfArchiveTypeEnabled archive_type="Page">
<div class="widget-pages widget">
<h3 class="widget-header">ウェブページ</h3>
<div class="widget-content">
<ul>
<MT:Pages no_folder="1" sort_by="title" sort_order="ascend">
<li class="page page-<$MT:PageID$>"><a href="<$MT:PagePermalink$>"><$MT:PageTitle$></a></li>
</MT:Pages>
<MT:TopLevelFolders>
<li class="folder folder-<$MT:FolderID$>"><strong><a href="<$MT:BlogURL$><$MT:FolderPath$>/"><$MT:FolderLabel$></a></strong>
<MT:Pages sort_by="title" sort_order="ascend">
<MT:PagesHeader>
<ul>
</MT:PagesHeader>
<li class="page page-<$MT:PageID$>"><a href="<$MT:PagePermalink$>"><$MT:PageTitle$></a></li>
<$MT:SubFolderRecurse$>
<MT:PagesFooter>
</ul>
</MT:PagesFooter>
</MT:Pages>
</li>
</MT:TopLevelFolders>
</ul>
</div>
</div>
</MT:IfArchiveTypeEnabled>
具体的には<$MT:SubFolderRecurse$>
の位置を変えただけですが、サブフォルダが区別できるようになりました。
- ウェブページ1
- フォルダ1
- フォルダ2
- ウェブページ5
- フォルダ5
- ウェブページ2
- ウェブページ4
- フォルダ3
- ウェブページ3
- フォルダ6
- フォルダ4
- ウェブページ6
空フォルダを表示したくない場合はMTFolderCountタグの値をチェックして表示の有無を切り替えればいいので、MTIfNonZeroタグを加えます。
<MT:IfArchiveTypeEnabled archive_type="Page">
<div class="widget-pages widget">
<h3 class="widget-header">ウェブページ</h3>
<div class="widget-content">
<ul>
<MT:Pages no_folder="1" sort_by="title" sort_order="ascend">
<li class="page page-<$MT:PageID$>"><a href="<$MT:PagePermalink$>"><$MT:PageTitle$></a></li>
</MT:Pages>
<MT:TopLevelFolders>
<MT:IfNonZero tag="FolderCount">
<li class="folder folder-<$MT:FolderID$>"><strong><a href="<$MT:BlogURL$><$MT:FolderPath$>/"><$MT:FolderLabel$></a></strong>
<MT:Pages sort_by="title" sort_order="ascend">
<MT:PagesHeader>
<ul>
</MT:PagesHeader>
<li class="page page-<$MT:PageID$>"><a href="<$MT:PagePermalink$>"><$MT:PageTitle$></a></li>
<$MT:SubFolderRecurse$>
<MT:PagesFooter>
</ul>
</MT:PagesFooter>
</MT:Pages>
</li>
</MT:IfNonZero>
</MT:TopLevelFolders>
</ul>
</div>
</div>
</MT:IfArchiveTypeEnabled>
- ウェブページ1
- フォルダ2
- ウェブページ5
- フォルダ5
- ウェブページ2
- ウェブページ4
- フォルダ3
- ウェブページ3
- フォルダ4
- ウェブページ6
デフォルトテンプレート以外をお使いの場合は適宜(X)HTMLを書き換えてお使い下さい。
コメント[0]
コメント投稿フォーム
コメントを投稿するにはJavaScirptが必要です。ブラウザのJavaScriptを有効にしてください。
トラックバック[0]
トラックバックはまだありません。
コメントはまだありません。