😺

コンテンツタイプフィールドに設定したデータは、未公開状態でも出力されてしまうから気をつけろ

2023/02/22に公開

備忘用メモ:

概要

  • Movable Type の「コンテンツタイプ」フィールドは、未公開データ(下書き等)も設定することができてしまう
  • 該当フィールドで提供されるコンテンツタイプ選択モーダルでは、「公開/未公開」状態の確認を行うことが出来ないため
  • 「下書き」状態のコンテンツデータを紐付けた場合、MTテンプレート側では「未公開」なデータでもその情報を出力してしまう

回避策

コンテンツタイプフィールドを利用する場合は、出力テンプレート側で紐付けたコンテンツデータの公開ステータスチェックのIF文を追加する

// これだと下書き状態のデータも含まれて出力されてしまう
<mt:ContentField content_field="コンテンツタイプフィールド名称">
  <mt:ContentLabel/>
</mt:ContentField>
// 紐付けるコンテンツのステータスをチェックして未公開記事を設定対象外にする
<mt:ContentField content_field="コンテンツタイプフィールド名称">
  <mt:If tag="ContentStatus" eq="Publish">
    <mt:ContentLabel/>
  </mt:If>
</mt:ContentField>

終わりに

もしもっと簡易な方法があれば教えて下さい(* . .)⁾⁾

Discussion