MovableType

MTCategoryCountの値を正しく取得するにはcontent_fieldモディファイアを指定する。

コンテンツがなくても、CategoryCountが1になる現象

カテゴリセットで作成したカテゴリにコンテンツがない状態や、複数のコンテンツタイプで同じカテゴリセットを使用している場合など、ひとつのカテゴリセットに複数のデータが紐づている場合に、CategoryCountが正しく取得できない現象に出会いました。

再現方法がふわふわしていますが、遭遇したときは以下をお試しください。

以下のテンプレートで期待したのは、都道府県カテゴリでコンテンツが登録されているカテゴリの一覧を表示することでしたが、CategoryCountに1が登録されているため、コンテンツがないカテゴリも表示され、正しく動作しませんでした。

<mt:CategorySets name="都道府県">
    <mt:if tag="CategoryCount">
        <mt:CategoryLabel> - <mt:CategoryCount><br>
    </mt:if>
</mt:CategorySets>

正しく取得するためには、使用しているコンテンツフィールド「出身地」をCategoryCountのcontent_fieldモディファイアに指定することで、正しく表示されました。

<mt:CategorySets name="都道府県">
    <mt:if tag="CategoryCount" content_field="出身地">
        <mt:CategoryLabel> - <mt:CategoryCount><br>
    </mt:if>
</mt:CategorySets>

登録されているカテゴリの一覧と、紐づけされているコンテンツの件数を表示するには、MTCategoryCountタグにcontent_fieldモディファイアでコンテンツフィールドを指定します。

<mt:CategorySets name="都道府県">
    <mt:CategoryLabel> - <mt:CategoryCount content_field="出身地"><br>
</mt:CategorySets>