WordPress

WordPressのアップデートでは本体、プラグイン、テーマのどれから手をつける?問題が起こる理由とは?

この記事は2019年以前他サイトに執筆したものを引越し掲載しています。

WordPressの更新を促すメッセージが、本体、プラグイン、テーマのすべてで出ている場合どれから手をつけるのが正解なんでしょうか?

アップデートではサイトが全く表示されなくなる可能性もあります。

ググってみると以下のように正反対の意見が見られました。

  • 本体→プラグイン&テーマ
  • プラグイン&テーマ→本体

この記事ではシンプルにするためにプラグインとテーマは一緒(以下「プラグイン」)として考えます。

本体は親、プラグインやテーマは子のイメージです。子同士のケンカは個別に解決すればいい。

では親と子どちらからアップデートすべきでしょうか。

WordPressの中身をいじるようになってまだ2年ほどの意見ですが(サイト管理の経験は20サイト程度)、今のところの結論としてはどちらもあり、だと思います。

少なくともどちらでなければならないとか、どちらからやった方がいいとは言い切れないと思います。

結論:どちらもあり。でも私はプラグインからにしている。

ただ個人的には一応システムの下から順番、つまりプラグイン&テーマ→本体の順でやってます。

原則として子(プラグイン)の最新バージョンが親(本体)の最新バージョンについていけているかをプラグインの公式ページなどで確認してアップデートする。

っていうのがありますが、更新メッセージがたくさん出ているような状態だといちいち調べるのは面倒だったりしますし、プラグインのサポート状況がよくわからないこともあります。

子からアップデートしたほうが問題が発見しやすい

ザクっと本体からアップデートしてもし問題が起きたら、プラグインを一個ずつ切ってどれが問題か確認したり、サーバー・PHPとか他の関連も考えるとかってなります。

でもプラグインからアップデートしていけば、問題が起きたらそこに目をつけて対応すればいいから楽っていう考え。

また本体最新に未対応のプラグインがある場合は本体側の更新を保留するほうが現実的と思っています(後述)。

制作会社などの管理体制では、ふつうテスト環境を用意して検証してから本物のアップデートをかけていきます。

ただ個人でやっている場合そこまでやれないでしょうから、こういったプラグインからちまちまアップデートしていって何かあっても検証と対応が最小限の労力で済むっていうのは現実的にいいかなと。

そもそもなぜアップデートで問題が起こるの?

そもそもなぜアップデートで問題が起こるのかというと本体↔プラグインでお互いの意思の疎通が取れなくなるから。

具体的には以下のような形で問題が起こります。

  • 本体をアップデートしたら問題が起きた。➡本体がプラグインの書き方が古い等で切り捨てた「もうこの書き方は読みません」
  • プラグインをアップデートしたら問題が起きた➡子が親が古い等で切り捨てる「もうこのバージョンには対応しません」

どちらが起こる確率が高いか、また問題が起きた場合厄介か。

まず起こる確率というとこれは前者が高いです。プラグイン側が親についていっていないという方が圧倒的に多いから。(対応をサボっていたり、サポートをやめたりしているプラグインも多いということ)

逆にプラグイン制作者側がWordPress本体の古いバージョンをそんなにはやく切り捨てて「最新じゃないと機能しませんよ」としていることはほとんどないです。

ただこれはどっちからアップデートするっていう話とはあまり関係ないです。

最終的にどちらも最新にしたいのだから。一応仕組み・原因として簡単にまとめました。

アップデートでどんな問題が起きるの?

アップデートでどんな問題が起こり得るのか例です。

例えばログインを制御するプラグインがあります。

ログイン時にひらがなを入力したり、URLをデフォルトのwp-loginとかから変更して入口を悪意の攻撃者からわかりにくくするやつとかです。

こういったプラグインで問題が起こると初心者だとかなり焦ります。いつもの方法でログインができなくなります。

本体とプラグインの親子で「泥棒が狙っているから、玄関はここにしてカギはこうやって管理しようね」って決めていたのに、そのルールが急になくなる感じなので。

この場合FTPなどからサーバーに入ってプラグインの該当フォルダをリネームして無効にするといった対応になります。

そういったことに慣れている人は大して問題に感じないですが、ログインできないとかは焦りますよね。

本体のアップデートをわざと遅らせるパターンもあり得る

アップデートで問題が起こったとして、どちらのバージョンを優先するかってなったら親(本体)に合わせるべきって思いたくなります。

つまりプラグイン側を切るか更新を遅らせて対応しようと。

ただそのサイトの根幹になるプラグインの場合もあります。

だとしたら本体の更新を遅らせてその結果脆弱性とかがあっても現実的にやむを得ない

子がついていけないから親を遅らせるっていうのはおかしいけど、仕方がないこともあるということです。

すべてが最新が理想ですが、いつでもそれができるというわけではないです。

またサーバー絡みで本体がアップデートできないということもあります。

WordPressはPHPで動いています。そしてWordPressの最新バージョンは最低このPHPバージョンでないと動きませんというのがあります。(「最低必須バージョン」)

この条件はけっこう厳しいというかはやいです。つまり、サーバーが古くて本体がアップデートできないこともけっこうあります。(ですがメジャーなレンタルサーバーを使っていればほとんどありません。)

最新バージョンへの更新についてはあまり完璧主義にならずに柔軟に対応することが現実的です。