MT4.2で、条件分岐のMTIfを使って、モジュールをインクルードしようとしたけれど、出来なくてしばらく苦しんだので、メモ。

MTEntryIfCategory

たとえば、エントリー記事内で、あるカテゴリーの場合は、特定のモジュールをインクルードさせたい場合、

最初は、ブログ記事アーカイブのテンプレートに

<mt:Ifcategory name=”モノ”>
<$mt:include module=”エントリー条件Bodyみんぽす”$>
</mt:ifcategory>

と書いていたが、カテゴリが「モノ」の場合にも「エントリー条件Bodyみんぽす」モジュールテンプレートはインクルードされなかった。

この場合は、MTIfCategoryではなく、MTEntryIfCategoryを使用するみたいで、

<mt:entryIfcategory name=”モノ”>
<$mt:include module=”エントリー条件Bodyみんぽす”$>
</mt:entryifcategory>

と書くと、うまくモジュールがインクルードされ、モジュール内に記述された文言が表示された。

条件分岐はブログ記事アーカイブテンプレートに書く

また、条件分岐を、インクルードするモジュール内に書いた場合も、旨く作動しない。

たとえば、ブログ記事アーカイブテンプレートには、

<$mt:include module=”エントリー条件Bodyみんぽす”$>

とのみ書き、「エントリー条件Bodyみんぽす」モジュールテンプレート内に、

<mt:Ifcategory name=”モノ”>
みんぽすってこんなこと
</mt:ifcategory>

と記述したが、「エントリー条件Bodyみんぽす」モジュールテンプレートは表示されなかった。

mt:entryIfcategoryは、ブログテンプレート内に記述すれば、作動するが、モジュールテンプレート内に記述した場合は、ブログアーカイブでないから、そのブログ記事の属するカテゴリを判定できない、ということなのだろうか。

とりあえず、結構過去に何回も、このことを忘れて、表示できなかったので、メモしておきます。