WordPressが壊れたら?

丁寧モード
時短モード
答えだけわかればいい人は「時短モード」がおすすめ。記事中の「補足」を非表示にします。

WordPressは壊れることがあります。

いろんな原因がありますが、大体は

  • 更新したことでWordPress本体やプラグインの一部が変更内容に対応できなくなった
  • 自分がカスタムしたところに不備がある

のどっちかです。

そのときは次の順番で修復できるか試していきます。

実は壊れてない可能性を疑う

壊れてるように見えるけど実は壊れてないことがあります。

このとき、ヘタに直そうとすることで壊れていなかったものを壊してしまうことがあります。

急に表示がおかしくなるとドキッとして慌ててあちこちいじってしまいがちです。

落ち着いて、まずは壊れていないかもしれないことを疑いましょう。

実は壊れていないのに壊れたように見えるときは、ブラウザが過去のデータと最新のデータをごっちゃにしてしまってるときに起こります。

補足
ON

ブラウザくんはなぜ過去のデータと最新のデータをごっちゃにしてしまうのか?
それは、できるだけ早くサイトを表示させようとしているからです。

サイトの表示は画像や文字などのいろんなデータをネットからダウンロードすることで実現されます。

ただ、ダウンロードは時間がかかるんです。
なので、一度見たサイトのデータはパソコンに保存しておき、次に見たときはそのデータを使うことで素早く表示させる仕組みになっています。

次に見たときにそのサイトが前と同じなら問題ないんですが、リニューアルなどでサイトの中身が変わったときに問題が起こります。

基本的には変わったデータをダウンロードする仕組みになっているんですが、それが中途半端にされてしまうことがあります。
このときに前のデータと今のデータがごっちゃになってサイトが変な見え方になってしまうのです。

確認するにはブラウザの「シークレットモード」を使います。

補足
ON

ブラウザによって名前が違いますがどれも同じものです。
Edge→InPrivate ブラウズ
Firefox→プライベートブラウジング
Chrome→シークレットモード

WindowsでChromeを使っているなら、CtrlキーとShiftキーを押しながら「N」キーを押すとシークレットモードに変わります。

シークレットモード(ブラウザが黒くなります)
補足
ON

Chromeがアクティブな状態(デスクトップで一番前に来ている状態)で上記のキーを押さないと動きません。
意味がわからない人は、Chromeの下記画像部分をクリックしてください。
それがアクティブということです。
その状態でCtrl+Shift+Nを押します。

この黒いブラウザで自分のWordPressサイトのいろんなページを見てください。

さっきおかしくなっていたページがきれいに表示されていたら、それが本来の状態なので、何もすることはありません。

補足
ON

シークレットモードは過去のデータを使わずに全部新たにダウンロードして表示します。
なので、過去のデータとごちゃまぜになって崩れることがありません。

逆にシークレットモードを使ったときだけ崩れているのであれば、それは過去のデータが正しくて今のデータが間違っているということなので修正が必要です。

他のページでも問題なさそうなら確認はここで終わり。

問題が起きたと思ったのは実はなんでもなかったというハッピーエンドになります。

シークレットモードで見ても問題がある場合は残念ながら何か問題があります。

次の手順に進みましょう。

補足
ON

たぶん、問題が起こっているのはプラグインかテーマのどっちかです。

このどちらかがアップデートした最新WordPressに対応していない可能性が高いです。

WordPressはWindowsやiOSなどと同じように定期的に更新されます。

そのとき更新されるのはWordPress本体だけで、その中にあるテーマやプラグインは更新されません。(それぞれ個別で更新されます)。

更新すると今までのルールが変わることがあります。

が、テーマやプラグインは更新していないので、今までのルールのままだと思って動きます。

そこで意思疎通が取れなくなり、動作がおかしくなってしまうというわけです。

同じルールで動いているときは問題が起きないけど、ルールが変わると、今までそのルール前提で動いていたものがおかしくなりることがあります。

どれが原因か特定するために1つずつオンオフを切り替えて確認していきます。

プラグインを1つずつ止めて確認する

プラグインをどれか1つ無効化します。そしてサイトの崩れが解消するかを確認します。

解消しなければもう1つ無効化して、サイトの崩れが解消するか確認、しなければまた次…という感じで。

その途中で不具合が解消するなら、そのプラグインが原因です。

大抵のプラグインはWordPressのアップデートに合わせてプラグインもアップデートしますが、中にはアップデートされないまま放置されたままのものもあります。

半年以上アップデートされていないプラグインは今後もアップデートされない可能性が高いです。

その場合は、

  • プラグインを使わない方法を考える
  • プラグインと同等の機能を自作する

のどちらからを選ぶことになります。

多くは前者を選ぶことになると思いますが、そもそもそれができないからプラグインを頼ったのであり、それができれば苦労しないと言いたくなるかもしれません。

が、それ以外に解決策はないのです。

このサイトでは自作テーマを勧める理由の1つがこれです。自作テーマであればプラグインを使わずに自分で書いたプログラムで代用できる可能性があります。

補足
ON

既存テーマを使うと、いらない機能ばかり詰め込まれ、必要な機能が足りない、いわゆる「帯に短し襷に長し」になりがちです。

欲しい機能があるけど使いたいテーマでは実現できない、だからプラグインで実現する。というのがよくある流れですが、プラグインは簡単に願いを叶えてくれる反面、問題が起こったときにすぐに行き詰まるモロさを持ち合わせています。

プラグイン1つ1つはすばらしくても他のプラグインを同時に使うことは想定していない(していたら開発が終わらない)ので、想定外のトラブルが起こりやすいです。

舞台セットのハリボテみたいなもので、オモテ向きは充実しているように見えても、ウラはテープでベタベタつぎはぎ、少し押せば全部バターンと倒れるみたいな。

自作テーマは必要な機能だけ自分で書いて加えていくので、このような問題が起こったときもどこの記述に問題があるか原因と対策が決めやすいです。

テーマに問題がないか確認する

テーマに問題がある場合、その問題を文章で教えてくれる機能があります。(英語ですが)

この機能は普段はオフになっているので、オンにします。

補足
ON

オンにするとそのサイトのエラーがあなただけでなく、全世界に公開されることになります。
エラーはハッキングの格好のターゲットです。
つまりエラー表示を常にオンにするということは「ここからハッキングしてください」と言ってるようなものです。
なので、必要なとき以外はオフにしておきます。

FTPソフトで「wp-config.php」をダウンロードして編集します。

ファイルはWordPressの一番上の階層にあります。

これをエディタで開きます。

補足
ON

Windowsのエディタといえば「メモ帳」ですが、サイト制作でこれは使ってはダメです。
サクラエディタ、Visual Studio Code、Atom、Sublime Textのどれかを使ってください(無料)。
自分はSublime Textを使いますが、人気なのはVisual Studio Codeです。

中にdefine(‘WP_DEBUG’, false);と書かれているところがあります。この「false」を「true」に書き換えます。

falseを
trueに
補足
ON

目視でこの文言を探してたら日が暮れます。ファイル内検索を覚えましょう。
ファイルを開いて「Ctrl」キーを押しながら「F」を押します。

エンターを押すたびにそのワードが書かれているところにジャンプします。

書き換えたwp-config.phpをアップロードします。

そして表示がおかしくなっているページを表示すると今まで出なかった英文が表示されていると思います。(それでもエラーが出ない場合は後述)

エラーは基本的に英語です。が、英語ができなくても問題ありません。

この文章をそのままコピーしてGoogle翻訳にかければいいのです。

上の画像のエラーを翻訳にかけるとこうなります。

ごちゃごちゃ書かれてますが、ここで重要なのは最初と最後だけです。

最初の「未定義の変数trueeeeeの使用」と、最後の「wp-config.php on line 84」というところです。

補足
ON

変数とはプログラム用語で「ある値が入ったもの」です。

変数は自分で好きに作ることができます。

たとえば、$aiueo = 1+1;と書くと$aiueoには1+1の答え、「2」が入ります。

PHPでは「echo」という命令でその後に続くものを文字で表示させることができます。

HTMLでは「こんにちは」と書けばそのまま文字で表示されますが、PHPは「echo」と命令しないと何も表示されません。

で、echo $aiueo;と書くと$aiueoには2が入っているので、画面上には「2」が表示されます。

しかし

$aiueo = 1+1;
$aiueo = 2+3;
echo $aiueo;

こう書いた場合は「5」が表示されます。

最初は1+1で2が入っていましたが、echoする前に2+3、つまり5が$aiueoに入ったので、値が変わったからです。

このように同じ名前で中の値がいろいろ変わるので「変数」と言います。

で、今回のエラーは「未定義の変数trueeeee」と言っています。

言い換えれば「trueeeeeなんて変数は存在しない」と怒られているわけです。

厳密には今回のエラー特有の箇所、「trueeeee」や自分のファイルの場所を示す「(ファイル名)on line 84」などは不要ですが、それを判断しているとややこしくなるので、考えずにそのままGoogleに丸投げしてしまっていいです。

今のGoogle検索は賢いのでそのあたりはうまく処理してくれます。

なぜか。

さっきfalseをtrueに書き換えると言いましたが、このとき書き間違えてtrueを「trueeeee」と書いてしまったからです。

trueならPHPは意図を正しく理解できますが、trueeeeeは登録されてないので処理が止まってしまうのです。

このようにエラーを表示させることで、原因を素早く突き止めることができます。

補足
ON

エラーの最後にはそのエラーがファイルのどこで起こったかが書かれています。

今回の場合「wp-config.php on line 84」、つまりwp-config.phpというファイルの84行目でエラーになっているということです。

行数はエディタによって表示できるものとできないものがあります。表示できるもののほうが便利です。

翻訳でも意味がわからないときはその文章をそのままGoogle検索に投げてしまうといいです。

大抵のエラーは過去にいろんな人が同じ経験をしています。

その情報がヒットし、解決方法も書いてあるので、それを参考に対応していけばエラーが解決します。

↑「WordPress」なんて一言も言ってないのにWordPressでの対処方法が出てくる有能ぶり

補足
ON

厳密には今回のエラー特有の箇所、「trueeeee」や自分のファイルの場所を示す「(ファイル名)on line 84」などは不要ですが、それを判断しているとややこしくなるので、考えずにそのままGoogleに丸投げしてしまっていいです。
今のGoogle検索は賢いのでそのあたりはうまく処理してくれます。

補足
ON

1つエラーが解決すると、また別のエラーが起こることがあります。

それは解決に一歩近付いたということです。

プログラムというものは1つずつ順番に処理を進めます。

エラーになったところで処理が止まってしまうので、その後にエラーがあってもなくてもオモテにでてこないのです。

1つずつ消していけばいつかエラーが出なくなるので、地道に対応していきましょう。

エラーが出ない場合は復元

エラーを出す設定にしてもエラーが出ない場合は最後の手段、「復元(リストア)」をします。

補足
ON

過去にデータベースのバックアップをしていないとこの作業はできません。
今の壊れたWordPressのファイルを1つずつ見ていって原因を探るか、WordPressを一度消して最初から作り直すしかないです。
前者はプログラミングの専門知識が必要になりますし、後者はとても手間がかかります。
どちらも嫌ですよね。

それをしなくていいようにおかしくなる前にバックアップを取っておくことが大事なのです。
人間の健康診断のようなものです。

補足
ON

今のWordPressが壊れる前にコピーしておいたWordPressでまるごと上書きすることになります。
少し手順を間違えるだけで、それがまたWordPressを壊す原因になってしまう可能性もあります。
作業は慎重に進めましょう。

最初にWordPressを作ったとき、バックアップを取っておいたのでこれを使っていきます。

WordPress本体の復元

FTPソフトでWordPressの場所を開きます。
これを全部消します。
ここにさっき保存しておいたWordPressを入れ直します。
補足
ON

FTPソフトで保存した場所が見つけきれないなら、エクスプローラ(フォルダ)から直接持ってくる方法がわかりやすいです。

ただし、このやり方はミスの元になるので、おすすめしません。
なるべく早くFTPの左右ウインドウでやり取りする方法に慣れたほうがいいです。

サイト作成を続けると同じようなファイルをいくつも作ることになりがちです。(新しいデータを作ったけど、古い方も念のため取っておきたい、など)
今回のように丸ごとコピーしたものがいくつもあると、パッと見で区別がつかず、古いもので新しいものを上書きしてしまったりします。

これを防ぐには自分のパソコンのファイルとサーバー上のファイルをフォルダごと同じ構造にして、双方を常に連動させるようにします。(「同期」と言います)
これにより、左右どちらかのフォルダを移動したらもう一方も同じように移動するようになり、フォルダを間違ってダウンロードしたりアップロードする失敗を防げます。
また、左右どちらのファイルが新しいか、色で判断できるようにもなります。

補足
ON

FileZillaの場合は緑が新しいファイル、黄色はもう一方に存在しないファイルです。
黄色が多いときは全く違うものを同期させようとしている可能性があります。
このように視覚的に注意喚起させておくと作業に集中しやすくなります。
FileZilla以外のFTPソフトでも大体似たような機能はついています。

データベースの復元(リストア)

FTPソフトでファイルの復元が終わったら、次はデータベースの復元です。

補足
ON

WordPressはファイルとデータベースの組み合わせで1つのサイトを構成しています。

データベースはレンタルサーバーの管理画面から操作します。

以下、レンタルサーバーがエックスフリーの場合の手順です。

他のレンタルサーバーも大体同じ手順です。

レンタルサーバーにログイン
WordPressの「管理画面ログイン」(これはエックスフリー特有です)
「設定」を押す
「phpMyAdminへのログイン」クリック
補足
ON

他のデータベースサーバーでは管理画面で「データベース」「phpmyadmin」などのキーワードでページ内検索(Ctrl押しながらFを押して出る欄に入力)すると見つかると思います。
↓はエックスフリーの有料版「エックスサーバー」の場合。

ちなみに「phpMyAdmin」は「ピーエイチピー・マイ・アドミン」と読みます。

左サイドバーからWordPressで使っているデータベース名を押す。(データベース名は人によって違います。)
補足
ON

一番上に「information_schema」というのがありますが、これを使うことは今後ないので、存在しないものと思っていいです。

押すとその「テーブル」のリストが表示されます。

補足
ON

たくさんのテーブルが集まって1つのデータベースが作られています。

1つのデータベースとファイルを組み合わせて1つのWordPressが作られています。

これを丸ごとダウンロードします。

自分のデータベース名が分からないときは、wp-config.phpの中に書いてあるのでも確認できます。

補足
ON

wp-config.phpはWordPressのファイルデータの一番上の階層にあります。
ファイルを開いて「DB_NAME」と書いてあるところを探してください(Ctrl+Fでファイル内を検索)。
DB_NAMEの右に書いてあるのがデータベース名です。
下の画像では「aiueo」がデータベース名です。

では、データベースの復元を始めます。

大まかな手順としては

  1. 今あるデータベースを自分のPCに保存
  2. 今あるデータベースを削除
  3. 以前保管していたデータベースを入れる

となります。

今のデータベースを保存

まず、今のデータベースを保存します。

補足
ON

壊れてるものを保存する必要があるの?と思うかもしれませんが、あります。
もしかすると消したあとにデータベースが原因じゃなかったことが分かるかもしれません。
そのときに戻せるようにするために今のデータベースも念のため保存しておく必要があるんです。

左のサイドバーでデータベースの中身を表示させた状態で、右側の「エクスポート」を押します。
補足
ON

データベース名ではなく、テーブル名を押してしまうと、そのテーブル1つだけしか保存できません。これでは丸ごと保存するデータとしては不完全です。

エクスポートするための設定画面が開きます。

最初からいい感じの設定になっているので、何も変更せずに下の「実行」を押します。

自分があとから分かる保存場所とファイル名を選んで保存

このあとデータベースを消して後から戻したくなったら、このデータを使います。

今のデータベース削除

ではデータベースを消します。

データベース名を押して(すでに中身のリストが表示されている場合は不要)、「すべてをチェックする」を押して「削除」を選びます。

本当に消していいか確認されるので「はい」を押します。
全部消えました。

壊れる前のデータベースを入れる

ここに以前取っておいたバックアップデータを入れます。

カラになったデータベース画面で「インポート」を押して、「ファイルを選択」
保管しておいたデータベースファイルを選んで「開く」
補足
ON

拡張子は「.sql」です。

「インポートは正常に終了しました」と出て「wp_」から始まるデータがいろいろ入っていれば成功です。
補足
ON

こういうエラーになるときは、どのデータベースか指定していないのが原因です。

「インポート」を押す前にデータベース名を押せば成功します。

サイトに戻るとそのときのWordPressに戻っています。
補足
ON

データベースを保存した当時の状態に戻るので、そのあとに作った記事やデザインの変更などはなくなります。
それらは手作業で地道に作り直すしかありません。

それをできるだけ少なくするために普段からこまめなバックアップを意識します。

これで復元(リストア)が完了です。

画像右下のアイコンクリックで原寸大。
画像クリックで戻る。