プラグインが豊富なことが WordPress の魅力のひとつだという。それはそれで結構なことですが、ちょっとみんな安易に使いすぎなんじゃないかとかたまに思うことがあり、大事なこと忘れてんじゃないかと心配になることがあるので、今日はそれについて書いてみたいと思います。
誤解がいくつかあるようです。まず、漠然なイメージとしてプラグインというのがなにか特別に設けられた仕組みの上で管理されているように思ってるかもしれませんが、それは間違っていて、WordPress のプラグインというのはただの PHP のコードです。たんに WordPress の本体コードからインクルードして実行しているだけです。
だから PHP でできることはなんでもできます。DB のレコードを書き換えることもできますし、新しいテーブルを追加したりもできます。また、悪いことしようと思えば、DB 上の全テーブルを削除したりできますし、勝手にパスワード書き換えてメールでばら撒いたりできますし、サーバ上のファイル丸ごと消したりとかも当然できます。
プラグインってそういうものです。さいわい、悪いことするためのプラグインが出回ったという話は今まで聞いたことがないですが、これまでそうだったからといってこれからもそうだとは限らない。もし大事な用途で WordPress を使ってるなら、プラグインを入れる前にちょっと考えた方がいい。
べつに不安をあおるつもりはないですけど、でも入れようとしているプラグインが何をどうするものなのかとか、信頼できる出元のものなのかとか、確かめないうちに入れるのはいろいろと危険にさらすことになるというのは一応知っといたほうがいいですよ。
バックアップは事前に取っておいたほうがいい。テスト環境が用意できるならまずそっちで動かしてみるべきです。
問題が起きた場合について。プラグインを入れたら WordPress の動きが変になりました。どうしたらいいんですか。プラグイン無効化すりゃいいじゃねえかとか、それもできなくなったらファイルごと消しちまえば直るはずだろうとか、そういう風に考えるかもしれませんが、これもよくある誤解です。
プラグインの影響はそのプラグインをアンインストールすれば除去できる、というのは間違い。ランタイムでフィルタかけたりそういうことだけをしているものならアンインストールで復旧できるでしょうが、そういうものばかりとも限らない。上に書いたようになんでもできるただの PHP コードです。元に戻せないようなこともやるかもしれない。
特殊なケースかというとそうでもなくて、よくはまりがちなのが、ユーザのロールの設定(そのユーザの権限でどこまでの操作ができるかとか)なんていうのはプラグインで変更かけたりとかよくすると思うんですが、ロールの設定情報って実は全部 DB で管理してるものなんで、ロール管理のプラグインというのはだいたい DB 上のレコードを書き換えるんです。
DB 書き換えてるんだから元の状態に復旧させようと思ったらもう一度 DB 書き換えないといけない。気の利いたプラグインなら無効化させたときにうまいことやって元の状態に書き換えてくれるでしょう。でもそこまで気が利かないかもしれないし、もし無効化されずにいきなりファイル削除とかされたとしたら、DB の書き換えなんてできなくなってしまう。プラグインをアンインストールしても影響が残るというのはそういうことです。
自己責任でちゃんと管理できるプラグインの上限なんて5個とかそんなもんだと思いますよ。僕は10個も動かしたらもう多すぎだと思う。そもそも、僕はプラグインをほとんど入れません。こんなこというとあれかもしれませんが、僕は自分が作ったもの以外は信用しないことにしてます。ほかの人の書いたプラグインを入れる場合はひと通りコードを見てなにやるか確認してからにします。それ以前に心中してもいいくらい気に入ったものでないと使いません。
50個とか100個とかインストールしてますなんて話たまに見ますけど、何度もいいますがただの PHP コードですよ。全くの他人同士が独自に書いたコードが50個も集められてそれが同じ土台共有して動いてたら、コンフリクト起こさないほうが不思議ですよ。
長くなったし言いたいことはだいたいこれで全部なんでおしまいにします。

One Trackback
[...] また、むやみやたらとプラグインを入れるのも危ない、、というのは以前から薄々感じてはいたんだけど(笑、「CHUO SPECIAL RAPID » プラグインには気をつけろ」を読んであらためて結構アブナイと知りましたです。 [...]