Movable Typeでデータ登録後にコンテンツフィールド名を変更する

Movable Typeで構築したサイトのコンテンツフィールド名を変更したいということがあったのですが、既存の登録データに影響が出ないかどうかが分からなかったので、試してみた結果と変更の流れについてメモ。

サンプルコード

以下のフィールド内容でコンテンツタイプを作成します。

  • フィールドの種類:テキスト
  • 名前:商品価格(税抜)

コンテンツタイプの一覧と詳細を出力するテンプレートを用意します。

インデックステンプレート(一覧)

<mt:Contents content_type="XXXXX">
  <div>
    <p><mt:ContentLabel></p>
    <mt:ContentField content_field="商品価格(税抜)">
      <p><mt:ContentFieldValue></p>
    </mt:ContentField>
  </div>
</mt:Contents>

コンテンツタイプテンプレート(詳細)

<p><mt:ContentLabel></p>
<mt:ContentField content_field="商品価格(税抜)">
  <p><mt:ContentFieldValue></p>
</mt:ContentField>

コンテンツデータを登録したうえで再構築を行ってみます。
それぞれ以下の内容で出力を確認できました。

インデックステンプレート(一覧)

  <div>
    <p>商品B</p>
      <p>1000</p>
  </div>
  <div>
    <p>商品A</p>
      <p>500円</p>
  </div>

コンテンツタイプテンプレート(詳細)

<p>商品A</p>
  <p>500円</p>

これで準備ができたので、実際にコンテンツフィールド名の変更を試してみます。
テキストのコンテンツフィールド名を、「商品価格(税抜)」から「商品価格(税込)」に変更してみます。

変更を保存後に登録しているコンテンツデータを確認してみましたが、フィールド名が「商品価格(税込)」に変更されたうえで、入力値はもともと入力していた内容が表示されました。
ただ、テンプレート内に記述されているコンテンツフィールド名は変更前のままなので、再構築を行うとエラーになります。

先ほど作成したテンプレートをそれぞれ修正してみます。
インデックステンプレート(一覧)

<mt:Contents content_type="XXXXX">
  <div>
    <p><a href="<mt:ContentPermalink>"><mt:ContentLabel></a></p>
    <mt:ContentField content_field="商品価格(税込)">
      <p><mt:ContentFieldValue></p>
    </mt:ContentField>
  </div>
</mt:Contents>

コンテンツタイプテンプレート(詳細)

<p><mt:ContentLabel></p>
<mt:ContentField content_field="商品価格(税込)">
  <p><mt:ContentFieldValue></p>
</mt:ContentField>

これで再構築を行えるようになりました。

あまりコンテンツフィールド名を変更するということはないかもしれませんが、共通管理用のテンプレートを用意したうえで、各フィールド名を変数で管理しておくと1箇所の変更のみで済むので楽かもしれません。

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930