拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
Movable Type 4のデータベース拡張機能の不具合?
MTOS(Movable Type Open Source)について話をするメーリングリストの中で、Ogawa Memorandaの小川さんが、MT4の不具合について投稿をしていました。
先日公開した「カテゴリーとフォルダの並べ替えを行うプラグイン」にも関係しますので、このプラグインをお使いの方は、必ず続きをお読みください。
1.不具合の内容
Movable Type 4では、プラグインでデータベースを拡張する機能が強化されていて、既存のテーブル(mt_entry)などに新たなフィールドを追加することができます。
この関係で、以下のような不具合が起こったそうです。
- テーブルを拡張するようなプラグインをインストールします。
- Movable Typeにログインすると、テーブルにフィールドを追加するためにUpgraderが動作します。正常に終了し、ログインできます。
- インストールしたプラグインを削除します。この状態ではプラグインが追加したフィールドが残ったままになりますが、正常に動作します。
- テーブルを拡張する別のプラグインをインストールします。
- Movable Typeにログインします。するとUpgraderが動作しますが、エラーが起きます。
- エラーを無視してページをリロードすると、一見うまくいったかのような表示が出ます。
- 最初のプラグインが拡張したテーブルが破壊されます。
2.問題の追試
拙作の「カテゴリーとフォルダの並べ替えを行うプラグイン」も、カテゴリーのテーブルにフィールドを追加しています。
そのため、上述の問題が起こる可能性があるので、こちらの環境で追試してみました。
昨日Movable Type 4.01β2が公開されましたが、その環境を使って、以下の手順を行ってみました。
- カテゴリーとフォルダの並べ替えプラグインをインストールします。
- このプラグインを削除します。
- エントリーのテーブルにフィールドを追加するダミーのプラグインをインストールします。
ところが、この手順では上述の問題は起こりませんでした。
プラグインの組み合わせや、MTが動作している環境によって、不具合が出たりでなかったりするようです。
3.フィールドを追加するプラグインを使う際の注意
上で述べたように、プラグインの組み合わせによっては、プラグインを削除すると問題が起こる可能性があります。
テーブルにフィールドを追加するタイプのプラグインをインストールした場合は、そのプラグインは削除しないようにしてください。
前述したように、拙作の「カテゴリーとフォルダの並べ替えを行うプラグイン」も、このタイプのプラグインに該当しますので、削除しないでください。