WordPress:有効化してるプラグインをMySQLから無効化する

「このページにアクセスするための十分なアクセス権がありません。」
と出てしまって、wordpressにログインできなくなってしまったのです。
マルチサイト化してたのでちょっと青ざめたんですが、とりあえず状況の整理。

直前にやった作業としては以下の二つ。
・プラグイン「NK Google Analytics」のアップデート
・更新センターの現行Verの「wordpressの再インストール」(押し間違えちゃった)

間違いなく後者だと思って、色々調べてたんですが、
ググってもググってもテーブル名のプレフィックスを変更した時の対応方法ばかり。

一応phpMyAdminを入れて、データベースの中身を調査したりもしたんですが、
やっぱり間違えてる所を見つける事ができなくて。そもそもプレフィックス弄ってませんし。

2時間位探しても成果をあげられなかったので、もう一つのプラグインを無効化するのに挑戦。
そもそもログインできないので、phpMyAdminから弄る事に。

で、どうやって無効化するかというと
データベース内「[prefix]_options」の 「option_name」 が 「active_plugins」の所の「option_value」のフィールド。
日本語で書くととても残念な奴の説明なのでsql文で書いときますw

select option_value from [prefix]_options where option_name = 'active_plugins';

そうすると私の場合、以下の値が入ってたのですが

a:4:{s:46:"wordpress-mu-domain-mapping/domain_mapping.php";i:1394679487;s:35:"insert-headers-and-footers/ihaf.php";i:1394684990;s:41:"nk-google-analytics/NKgoogleanalytics.php";i:1394685005;s:28:"wp-robots-txt/robots-txt.php";i:1395030636;}

それを
1. s:41:”nk-google-analytics/NKgoogleanalytics.php”;i:1394685005; だけを外す(多分このプラグインを無効化する)
2. 最初のa:のあとの4を3に(多分、ライブなプラグインの数)
として以下に変更してあげます。

a:3:{s:46:"wordpress-mu-domain-mapping/domain_mapping.php";i:1394679487;s:35:"insert-headers-and-footers/ihaf.php";i:1394684990;s:28:"wp-robots-txt/robots-txt.php";i:1395030636;}

(それ以外何も有効化してなかったらどうすれば良いんだろう)=> a:0:{} とすればOK

そして何食わぬ顔でwp-adminにいけばあらびっくり。ログインできちゃいました。
マルチサイト化したwpだけかもしれませんが、忘備録としてメモっておきます。

14/04/09 追記
私の環境ではやっぱり再現性がありますねぇ、便利なのにちょっと残念。
それともマルチサイト管理用プラグインである「WordPress MU Domain Mapping」との相性が悪いのかも。
すべてのサイトに対してのプラグイン無効化をする必要があるので、
データベース内「[prefix]_sitemeta」の 「option_name」 が 「active_sitewide_plugins」の所の「option_value」のフィールドも同じように改修してやる必要がありますた。

0