45式::雑記
45式::雑記は、日々の事を記してないから日記ではなく雑記です。

ウェブページとフォルダを階層表示する方法

コメント
0件
トラックバック
0件

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]

トラックバックはまだありません。

カテゴリ
アーカイブ
ヘルプ
Feed

フィードとは