端くれプログラマの備忘録 WordPress [WordPress] データベースを直接編集してプラグインを無効化する

[WordPress] データベースを直接編集してプラグインを無効化する

wp_optionsのoption_name=’active_plugins’のレコードを編集する。

mysql> select * from wp_options where option_name='active_plugins'\G
 *************************** 1. row ***************************
 option_id: 36
 option_name: active_plugins
 option_value: a:5:{i:1;s:43:"all-in-one-seo-pack/all_in_one_seo_pack.php";i:5;s:23:"siteguard/siteguard.php";i:6;s:45:"taxonomy-terms-order/taxonomy-terms-order.php";i:7;s:43:"wp-maintenance-mode/wp-maintenance-mode.php";i:8;s:41:"wp-multibyte-patch/wp-multibyte-patch.php";}
 autoload: yes

option_valueの形式は以下のようになっている。

a:5:{プラグイン1;プラグイン2;プラグイン3;プラグイン4;プラグイン5;}

括弧{}に挟まれてプラグインの情報がセミコロン(;)で繋いで記述されている。冒頭のa:に続く数字(この例だと5)がプラグインの総数である。なので、括弧{}内の無効化したいプラグインの情報を削除してから、先頭の数字(プラグインの総数)を削除した分だけ減じてやれば良い。

上の例でtaxonomy-terms-orderプラグインを無効化したければ、以下のように変更すればよい。

変更前

a:5:{i:1;s:43:”all-in-one-seo-pack/all_in_one_seo_pack.php”;i:5;s:23:”siteguard/siteguard.php”;i:6;s:45:”taxonomy-terms-order/taxonomy-terms-order.php”;i:7;s:43:”wp-maintenance-mode/wp-maintenance-mode.php”;i:8;s:41:”wp-multibyte-patch/wp-multibyte-patch.php”;}

変更後

a:4:{i:1;s:43:”all-in-one-seo-pack/all_in_one_seo_pack.php”;i:5;s:23:”siteguard/siteguard.php”;i:7;s:43:”wp-maintenance-mode/wp-maintenance-mode.php”;i:8;s:41:”wp-multibyte-patch/wp-multibyte-patch.php”;}