WordPressでプラグインを削除したら、サイトに思わぬ不具合が発生した経験はありませんか?
実は、プラグインを削除しただけでは完全にクリーンな状態には戻らないことがあります。
本記事では、プラグイン削除後によくあるトラブルとその解決方法を解説します。
なぜプラグイン削除後に不具合が起きるのか
WordPressプラグインは、単にファイルを設置するだけでなく、動作するために様々な変更をサイトに加えます。
プラグインがインストールされると、データベースに専用のテーブルを作成したり、wp_optionsテーブルに設定値を保存したりします。また、投稿や固定ページにショートコードを挿入したり、テーマのfunctions.phpに依存する機能を追加したりすることもあります。
問題は、プラグインを削除しても、これらの変更がすべて自動的に元に戻るわけではないということです。プラグインの作り方次第で、削除時にクリーンアップ処理を実行するものもあれば、何も処理せずにファイルだけが消えるものもあります。
特に、FTPで直接プラグインフォルダを削除した場合は、プラグインのアンインストール処理が一切実行されないため、様々な痕跡が残ってしまいます。
よくあるトラブル事例
実際にどのような不具合が起きるのか、具体的な事例を見ていきましょう。
ショートコードがそのまま表示される
プラグインが提供していたショートコードが、削除後もページ上にそのまま文字列として表示されてしまいます。
例えば、ギャラリープラグインを使っていて記事内にというショートコードを入れていた場合、プラグイン削除後はこのテキストがそのまま表示されます。お問い合わせフォームプラグインの[contact-form-7 id="456"]なども同様です。
訪問者からすると、意味不明な記号が表示されているように見えてしまい、サイトの信頼性を損ないます。
ウィジェットエリアにエラーが表示される
サイドバーやフッターなどのウィジェットエリアに、削除したプラグインのウィジェットを配置していた場合、エラーメッセージが表示されることがあります。
「外観」→「ウィジェット」を開くと、「このウィジェットのコンテンツを表示できません」といった警告が出たり、ウィジェットエリア自体が正しく表示されなくなったりします。
サイトの表示が崩れる原因にもなるため、早急な対処が必要です。
カスタム投稿タイプのデータが見えなくなる
プラグインが作成したカスタム投稿タイプ(「お客様の声」「制作実績」など)のデータが、管理画面から見えなくなります。
これは非常に混乱を招くトラブルです。データ自体はデータベースに残っているのですが、カスタム投稿タイプを定義していたプラグインがなくなったため、WordPressがその投稿を認識できなくなります。
投稿データが消えたと勘違いして焦ってしまいますが、実際には削除されていません。同じカスタム投稿タイプを再定義すれば、データは再び表示されるようになります。
ページが404エラーになる
プラグインが独自のURLやパーマリンク構造を追加していた場合、削除後にそのページにアクセスすると404エラーが表示されます。
特にECサイトやメンバーシップサイト用のプラグインでは、「/cart/」「/checkout/」「/mypage/」といった独自のURLを作成していることが多く、削除後にこれらのページが表示されなくなります。
リライトルールがリセットされていないことが原因です。
データベーステーブルが残り続ける
これは表面的には問題が見えませんが、長期的にはデータベースの肥大化につながります。
プラグインが作成した専用テーブルが削除されずに残り、使われることのないデータがデータベース内に蓄積されていきます。複数のプラグインを試しては削除する、ということを繰り返していると、データベースには大量の不要なテーブルが残ってしまいます。
データベースのバックアップサイズが大きくなったり、クエリのパフォーマンスに影響が出たりする可能性があります。
サイトのデザインが崩れる
CSSやJavaScriptを追加していたプラグインを削除すると、サイトのデザインや機能が崩れることがあります。
特に、ページビルダープラグインやカスタマイズ系プラグインを削除した場合、レイアウトが完全に壊れてしまうこともあります。プラグインが提供していたCSSクラスやスタイルが失われるためです。
テーマがプラグインに依存した作りになっている場合は、さらに深刻な問題になります。
wp_optionsテーブルが肥大化する
wp_optionsテーブルに保存された設定値が削除されずに残ります。
1つのプラグインが数十〜数百の設定項目をwp_optionsに保存していることもあり、これらが蓄積するとテーブルが肥大化します。wp_optionsはWordPressの動作に頻繁にアクセスされるテーブルなので、無駄なデータが多いとサイトの表示速度に影響します。
autoload(自動読み込み)設定がされているオプションは特に注意が必要です。
トラブル別の解決方法
それぞれのトラブルに対する具体的な解決方法を見ていきましょう。
ショートコードを一括削除する
残ってしまったショートコードは、手動で削除するか、プラグインを使って一括削除できます。
手動で削除する場合
- 管理画面から「投稿」または「固定ページ」を開く
- 各記事を編集して、不要なショートコードを検索して削除
- 記事数が多い場合は、後述のプラグインを使用
Search Regexプラグインを使う場合
- Search Regexプラグインをインストール・有効化
- 「ツール」→「Search Regex」を開く
- Search patternに削除したいショートコード(例:
\[contact-form-7.*?\])を入力 - Replaceは空欄のまま
- 「Replace & Save」をクリック
正規表現を使えば、複数のショートコードを一度に削除できます。ただし、実行前に必ずバックアップを取っておいてください。
ウィジェットエリアを整理する
エラーが出ているウィジェットを削除します。
- 管理画面から「外観」→「ウィジェット」を開く
- エラーが出ているウィジェットを探す
- ウィジェットの「削除」をクリック
- 必要に応じて、別のウィジェットで置き換える
ブロックエディタベースのウィジェットエリアの場合は、「外観」→「エディター」から同様の操作ができます。
カスタム投稿タイプを復活させる
データを復活させるには、カスタム投稿タイプを再定義する必要があります。
元のプラグインを再インストールする方法
- 削除したプラグインを再インストール
- データが表示されることを確認
- データをエクスポートまたは通常の投稿に変換
- その後、プラグインを安全に削除
functions.phpで定義する方法
テーマのfunctions.phpに以下のようなコードを追加します。
function restore_custom_post_type() {
register_post_type('case_study', array(
'labels' => array(
'name' => '制作実績',
'singular_name' => '制作実績'
),
'public' => true,
'has_archive' => true,
'supports' => array('title', 'editor', 'thumbnail')
));
}
add_action('init', 'restore_custom_post_type');
投稿タイプのスラッグ(この例では’case_study’)は、元のプラグインが使っていたものと同じにする必要があります。データベースのwp_postsテーブルでpost_typeカラムを確認すれば分かります。
404エラーを解消する
パーマリンク設定を保存し直すことで、リライトルールをリセットできます。
- 管理画面から「設定」→「パーマリンク設定」を開く
- 何も変更せずに「変更を保存」ボタンをクリック
- サイトにアクセスして404エラーが解消されたか確認
これでリライトルールが再生成され、多くの場合は問題が解決します。
それでも解決しない場合は、.htaccessファイルが原因の可能性があります。FTPでサイトのルートディレクトリにある.htaccessをダウンロードして、プラグインが追加した不要な記述がないか確認してください。
データベーステーブルを削除する
不要なテーブルを削除するには、phpMyAdminを使用します。
- サーバーのコントロールパネルからphpMyAdminを開く
- WordPressのデータベースを選択
- テーブル一覧から、削除したプラグイン関連のテーブルを探す
- 該当テーブルにチェックを入れる
- 「選択項目」→「削除」を実行
注意:削除前に必ずデータベースのバックアップを取ってください。間違ったテーブルを削除するとサイトが壊れます。
プラグイン名がテーブル名に含まれていることが多いので、それを手がかりに探します。例えば、wp_contactform7_logsのように、wp_プレフィックスの後にプラグイン名が入っています。
wp_optionsをクリーンアップする
wp_optionsテーブルから不要なオプションを削除します。
phpMyAdminでwp_optionsテーブルを開き、option_nameカラムでプラグイン関連の設定を検索します。プラグイン名やプレフィックスで検索すると見つかりやすいです。
例えば、「contact_form_7」で検索すると、そのプラグイン関連のすべてのオプションが表示されます。確認して不要なものを削除してください。
より安全な方法
WP-Optimizeなどのデータベース最適化プラグインを使えば、より安全にクリーンアップできます。
- WP-Optimizeプラグインをインストール・有効化
- 「WP-Optimize」→「データベース」を開く
- 「孤立したメタデータをクリーン」や「孤立したオプションをクリーン」を実行
- 定期的に最適化を実行する
デザイン崩れを修正する
プラグインが提供していたCSSやJavaScriptが失われた場合の対処法です。
テーマのCSSに追加する方法
- 「外観」→「カスタマイズ」→「追加CSS」を開く
- 必要なスタイルを追加
- または、子テーマのstyle.cssに記述
プラグインが何のスタイルを提供していたか分からない場合は、ブラウザの開発者ツール(F12キー)でエラーを確認すると、どのCSSクラスが見つからないかが分かります。
代替プラグインを探す
同じ機能を提供する別のプラグインを探して導入することも検討してください。ただし、新しいプラグインを入れる前に、古いプラグインの痕跡を完全にクリーンアップしておくことをお勧めします。
プラグインを安全に削除する方法
トラブルを未然に防ぐため、プラグインは正しい手順で削除しましょう。
削除前の準備
まず、プラグインがサイトのどこで使われているかを確認します。
- ショートコードを使っている投稿や固定ページはないか
- ウィジェットエリアで使用していないか
- テーマがプラグインに依存していないか
- カスタム投稿タイプやカスタムフィールドを使っているか
これらを確認してから削除すれば、後でトラブルになることを避けられます。
正しい削除手順
必ず管理画面から削除してください。FTPで直接削除するのは最後の手段です。
- バックアップを取る:万が一に備えて、サイト全体とデータベースのバックアップを取ります
- 無効化する:「プラグイン」画面から該当プラグインを「無効化」します
- サイトの動作確認:無効化した状態でサイトが正常に動作するか確認します
- 削除する:問題なければ「削除」をクリックします
この手順なら、プラグインが独自のアンインストール処理(uninstall.phpやdeactivationフック)を実行してくれます。
FTPで削除せざるを得ない場合
管理画面にアクセスできない場合や、プラグインのバグでエラーが出る場合は、FTPで削除することになります。
- FTPソフトでサーバーに接続
- wp-content/pluginsフォルダを開く
- 該当プラグインのフォルダを削除
- サイトにアクセスして動作確認
- 後述のクリーンアップ作業を必ず実行
削除後のクリーンアップ
プラグイン削除後は、以下のクリーンアップ作業を行うことをお勧めします。
ショートコードの確認
すべての投稿と固定ページをチェックして、不要なショートコードが残っていないか確認します。記事数が多い場合は、Search Regexプラグインで一括検索・置換が便利です。
ウィジェットの整理
「外観」→「ウィジェット」を開いて、エラーが出ているウィジェットがないか確認し、あれば削除します。
パーマリンクのリフレッシュ
「設定」→「パーマリンク設定」を開いて、何も変更せずに「変更を保存」をクリックします。これでリライトルールが再生成されます。
データベースの最適化
phpMyAdminまたはWP-Optimizeプラグインを使って、不要なテーブルやオプションを削除します。特にwp_optionsテーブルは定期的にクリーンアップすることをお勧めします。
サイト全体の動作確認
最後に、サイト全体をチェックします。
- トップページ
- 記事ページ
- 固定ページ
- カテゴリーページ
- 検索機能
- お問い合わせフォーム
- その他の重要な機能
すべてが正常に動作することを確認してから、作業完了です。
まとめ
WordPressプラグインの削除は、単にファイルを消すだけでは完全ではありません。ショートコード、ウィジェット、カスタム投稿タイプ、データベーステーブル、設定値など、様々な痕跡が残る可能性があります。
トラブルを避けるためには、削除前にプラグインの使用状況を確認し、管理画面から正しい手順で削除することが重要です。削除後は必ずクリーンアップ作業を行い、サイトの動作を確認しましょう。
定期的にデータベースを最適化し、使っていないプラグインは早めに削除することで、サイトを健全な状態に保つことができます。
もし自分で対処するのが難しい場合は、専門家に依頼することも検討してください。大切なサイトを守るため、慎重に作業を進めましょう。
