• WordPressプラグインは停止と削除でデータの扱いが違う

WordPressプラグインは停止と削除でデータの扱いが違う

公開日: 執筆:佐藤

WordPressプラグインの動作を止めるだけなら、先に「停止」を使います。「削除」は、プラグインがアンインストール処理を用意していれば、それを実行したあと、プラグインのファイルを消す操作です。設定や保存済みデータまで消えるかは、プラグインの実装によって変わります。

不具合の切り分けで、一度止めたいだけのプラグインを削除してはいけません。削除前には、残すデータ、消してよいデータ、再び有効にする可能性を決め、データベースを保存します。

停止は有効なプラグインの一覧から外す

WordPress 3.6のプラグイン停止処理は、対象を有効なプラグインの一覧から外し、停止時のフックを呼び出します。プラグインのPHPファイル自体は、wp-content/pluginsに残ります。

WordPress本体は、停止しただけでプラグインのファイルや設定を一律に削除しません。ただし、停止時のフックで何をするかはプラグインが決めます。キャッシュを消すもの、定期処理を解除するもの、独自の処理を行うものがあり得るため、「停止ならデータは絶対に変わらない」とも断定できません。

停止は、次の用途に向いています。

  • 不具合の原因かどうかを一時的に確認する。
  • 更新前後の動作を比べる。
  • 機能を再び使う可能性がある状態で止める。

停止後は、公開画面だけでなく、問い合わせ、予約、会員、定期処理など、そのプラグインが担当していた機能を確認します。画面にエラーがないことと、必要な処理が動いていることは別です。

削除ではアンインストール処理のあとにファイルを消す

WordPress 3.6の削除処理は、プラグインがアンインストール可能かを確認します。uninstall.phpがあるか、register_uninstall_hook()で処理が登録されていれば、その処理を実行してからプラグインのディレクトリまたはファイルを削除します。

操作 WordPress本体が行うこと 設定と保存済みデータ
停止 有効な一覧から外し、停止時のフックを呼ぶ プラグインの停止処理に依存する
削除 アンインストール処理があれば呼び、ファイルを削除する プラグインのアンインストール処理に依存する
再インストール 新しいプラグインファイルを置く 以前のデータが残るかは削除時の処理に依存する

アンインストール処理がないプラグインでは、ファイルだけが削除され、データベースの設定や独自データが残る場合があります。反対に、アンインストール処理が設定やテーブルを消すプラグインでは、削除後に同じプラグインを入れ直しても以前の状態へ戻らない場合があります。

「削除すればすべて消える」と「再インストールすれば設定も戻る」のどちらも、プラグイン名だけでは判断できません。

uninstall.phpとregister_uninstall_hookは削除時の処理である

WordPress 3.6のregister_uninstall_hook()は、プラグインをアンインストールするときに呼び出す関数を登録します。もう一つの方法は、プラグインの基点となるディレクトリへuninstall.phpを置くことです。

uninstall.phpを使う場合、WordPressは削除処理から呼び出す直前にWP_UNINSTALL_PLUGINを定義します。プラグイン側は、この定数を確認して、ファイルへ直接アクセスされた場合に削除処理が動かないようにできます。

これらの仕組みがあることは、すべてのデータが適切に消える保証ではありません。アンインストール処理へ何が書かれているか、プラグインがどこへデータを保存しているかを確認する必要があります。

削除前に残すものと消すものを分ける

説明用の仮例として、問い合わせフォームのプラグインを削除する場合を考えます。画面上のフォーム、管理画面の設定、送信履歴、メール送信、本文中の記述は、それぞれ別の場所にある可能性があります。プラグインを削除した結果を、フォーム画面だけで判断してはいけません。

削除前に、次の表を作ります。

対象 残すか消すか 保存方法 削除後の確認
プラグイン設定 個別に決める データベース保存 管理画面とデータベースを確認
保存済みの業務データ 原則として先に確認 書き出しまたはデータベース保存 件数と内容を照合
公開ページの表示 代替方法を決める 画面と本文を記録 ページを開いて確認
定期処理や外部連携 停止条件を決める 接続先と実行時刻を記録 次の実行予定を確認

プラグインごとに保存場所と削除動作は異なります。上の対象は確認欄の例であり、特定のプラグインがすべてを作るという意味ではありません。

不具合調査では削除より停止を先にする

不具合の原因を調べる場合は、次の順で進めます。

  1. プラグイン名、版、設定、担当する機能を記録する。
  2. データベースと必要なファイルを保存し、復旧方法を確認する。
  3. プラグインを停止し、症状と必要機能の変化を確認する。
  4. 再び使う可能性と、残すデータを決める。
  5. 公式説明またはプラグインのコードで、削除時の処理を確認する。
  6. 不要と判断した場合だけ削除し、ファイルとデータを別々に確認する。

停止して症状が変わらなければ、削除しても原因調査の情報は増えません。削除は、使わないと決めたプラグインのファイルを除き、用意されたアンインストール処理を実行するために行います。

制作会社へ削除を依頼する場合は、「プラグインを消す」だけでなく、対象版、保存するデータ、アンインストール処理、バックアップ、削除後の確認、復旧条件を渡します。作業を委託しても、データを残す判断はサイト所有者が行います。

まず、削除しようとしている理由を「一時停止」「不具合調査」「完全に利用終了」のどれかに分けてください。一時停止と調査なら停止から始め、完全に利用を終える場合だけ、データの扱いを確認して削除します。

戻る