MTのインデックステンプレートの出力ファイル名を取得してみる。12.09.09

URLの正規化を「canonical」で行っていたり、スマートフォンサイトとの連携などで今表示しているURLを取得する必要がある時。

ブログ記事ページの場合、
<$mt:EntryPermalink$>

ウェブページの場合、
<$mt:PagePermalink$>

アーカイブページの場合
<$mt:ArchiveLink$>

などでURLが取得できます。

しかし、インデックステンプレートなどの場合はどうやって取得しましょうか。

ブログ記事やウェブページの場合、
<$MTEntryBasename$>
<$MTPageBasename$>

で表示しているページのファイル名が取得できますが、インデックステンプレートの出力ファイル名を取得するタグはありません。

<$MTIndexBasename extension="1"$>
では各アーカイブのファイル名を取得できますが、インデックステンプレートでは正常に機能しない。

「<$mt:IndexLink$>」はどうか?

<$mt:IndexLink$>は、全てインデックステンプレートのリンク一覧を表示するので現在のページを判断できない。

結果、インデックステンプレート内に変数で設定しておいて判断するしかないようです。

<MTSetVarBlock name="IndexTName">現在のテンプレート名</MTSetVarBlock>

などとして、振り分けを行うしかありません・・・。

そもそも、インデックステンプレートは管理者が作成するもので、増えるものでもないので、MTの上記仕様になっています。

多くの案件を1つのMTで制作、集中管理している場合はインデックステンプレートの情報「出力ファイル名」、「タイトル」、「テンプレートの種類」は、別途変数で設定し、管理しましょう。

  • 広告
  • 広告
PageTop

CATEGORY