【MovableType】メニューの並び順を制御する(ウェブページ)

電脳備忘録

本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。

この記事は最終更新から3年以上経過しています。

MovableTypeでウェブページを作成し、各ページへ遷移するためのメニューをMTタグを使って作ろうとしたら、公開したすべてのページの更新順でメニュー表示されてしまいました。メインメニューに紐づいたサブメニューとしてたいのに表示させてたいので、これではよろしくありません。

実装しようとしたのはよくある企業ページのサブメニュー。例えばメインメニュー「企業情報」の下にサブメニュー「ご挨拶」「企業概要」「品質・環境」「地域貢献」というメニューがあり、これを常に「ご挨拶」「企業概要」「品質・環境」「地域貢献」の順番で並ばせたかったのです。 001.jpg こんな感じですね。

次にコードを書きます。こまけぇことは気にすんな。

<div id="sub-nav-container">
  <div class="sub-nav-wrapper">
    <h2 class="entry-name"><$mt:PageTitle remove_html="1"$></h2>
    <div class="sub-nav">   
      <mt:SetVarBlock name="page_folder"><mt:PageFolder><$mt:FolderLabel$></mt:PageFolder></mt:SetVarBlock>
      <$mt:PageID setvar="id"$>
      <mt:IfFolder>
      <mt:Pages folder="$page_folder" sort_by="title" sort_order="ascend">
      <mt:PagesHeader>
      <ul>
      </mt:PagesHeader>
        <mt:If tag="pageid" eq="$id"><li class="current"><$mt:PageTitle remove_html="1"$></li><mt:Else>
        <li><a href='<$mt:PagePermalink$>'><$mt:PageTitle remove_html="1"$></a></li></mt:If>
      <mt:PagesFooter>
      </ul>
      </mt:PagesFooter>
      </mt:Pages>
      </mt:IfFolder>  
    </div>
  </div>
</div><!-- #sub-nav-container -->

上記のコードで不十分で、実装するにはウェブページ名をカテゴリごとに分けたうえでナンバリングする必要があります。例えば企業情報でウェブページをまとめてメニュー表示したい場合ウェブページのファイル名を識別できるタグで囲うことでカテゴリごと昇順で表示してくれます。「com」がカテゴリで、カテゴリごとに昇順で表示するといった感じです。 002.jpgこの例だと「ご挨拶」「地域貢献」の順で表示してくれます。その他のウェブページへのリンクは表示されません。

‹$mt:PageTitle$›をそのまま使うと‹com001›ご挨拶‹/com001›表示されてしまうので‹$mt:PageTitle remove_html="1"$›と書きましょうね。

0%