• Home
  • Movable Type
  • MTAppjQuery
  • Movable Type 7 で下書きのコンテンツデータを下書きのまま保存した場合にカテゴリアーカイブが削除されてしまう不具合への応急処置

Movable Type 7 で下書きのコンテンツデータを下書きのまま保存した場合にカテゴリアーカイブが削除されてしまう不具合への応急処置

Movable Type 7 でカテゴリフィールドを持つコンテンツデータを、下書きの状態から下書きのまま保存したとき、そのコンテンツデータが紐付いていたカテゴリアーカイブのファイルが削除されてしまうという不具合があります。これはおそらく r.4605 から r.4508で発生するようです。

なかなか大きな問題なので、MTAppjQuery を使って一時的に対処する方法をご紹介します。

DataAPI で再構築する

user.js に下記のコードを追加します。

(function($){

  if (mtappVars.screen_id === 'edit-content-type-data' && mtappVars.content_data && mtappVars.content_data.status === '1' && location.search.indexOf('saved_changes=1') !== -1) {
    const templateId = 74;
    mtappVars.DataAPI.getToken(function() {
      mtappVars.DataAPI.publishTemplate(mtappVars.blog_id, templateId, {data: JSON.stringify({})}, function (response) {
        if (response && typeof response.error !== 'undefined') {
          alert(response.error,message)
        }
      });
    });
  }

})(jQuery);

上記のコード中の const templateId = 74; の部分のテンプレートIDは、カテゴリアーカイブの ID に差し替えてください。

また、MTAppjQuery のシステム設定で、管理画面での DataAPI の利用 を有効にして、バージョンを v4 にしてください。

このコードで、コンテンツデータが下書きで保存された場合に、テンプレートIDで指定したテンプレートが再構築されます。もしそのカテゴリアーカイブの再構築が重い処理になる場合は、「下書き → 下書き」に保存されたときだけ処理が動くように調整する必要はあるかもしれません。

以上です。

MTAppjQuery について

Movable Type の管理画面をフロントエンドの知識だけで簡単にカスタマイズすることができます。

クライアントの満足度を高めるためにぜひお使いください。

MTAppjQuery の詳細を見る

MTAppjQuery