Movable Type 7 で下書きのコンテンツデータを下書きのまま保存した場合にカテゴリアーカイブが削除されてしまう不具合への応急処置をご紹介します。
Movable Type 7 でカテゴリフィールドを持つコンテンツデータを、下書きの状態から下書きのまま保存したとき、そのコンテンツデータが紐付いていたカテゴリアーカイブのファイルが削除されてしまうという不具合があります。これはおそらく r.4605
から r.4508
で発生するようです。
なかなか大きな問題なので、MTAppjQuery を使って一時的に対処する方法をご紹介します。
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で指定したテンプレートが再構築されます。もしそのカテゴリアーカイブの再構築が重い処理になる場合は、「下書き → 下書き」に保存されたときだけ処理が動くように調整する必要はあるかもしれません。
以上です。