投稿日:2018/10/29
更新日:2022/01/06
「プラグインのアップデートをしたらWordPressの管理画面に入れなくなった」のような問い合わせの調査の時に使える。
プラグインファイル自体に問題がある場合はホスティング上からプラグイン個別のフォルダごと削除すれば解決するが、それでも解決できないとき。
プラグイン有効の登録情報自体が壊れている場合がある。
下記をfunctions.phpに追記してブラウザからアクセスする。
内部的にall-in-one-seo-packは無効化された状態になる。
記述されたプラグインが有効化できなくなる。
プラグインファイル自体に問題がある場合はホスティング上からプラグイン個別のフォルダごと削除すれば解決するが、それでも解決できないとき。
プラグイン有効の登録情報自体が壊れている場合がある。
フロー
- get_option関数でactive_pluginsの情報を取得する。配列が返ってくる
- その中から無効化したいプラグインへの参照を削除する
- update_option関数で書き戻す
コード
例: all-in-one-seo-packを無効化したい下記をfunctions.phpに追記してブラウザからアクセスする。
内部的にall-in-one-seo-packは無効化された状態になる。
$plugins = get_option('active_plugins');
foreach ($plugins as $plugin) {
if(preg_match('/all-in-one-seo-pack/', $plugin)) continue;
$new_plugins[] = $plugin;
}
update_option('active_plugins', $new_plugins);
配列をforeachで回して新しい配列を作っているがarray_filter
など配列関数を使えばもっと綺麗に書ける。
注意点
上記コードは作業後必ず消すこと。記述されたプラグインが有効化できなくなる。