とっちゃん@nyanco! です。
今回はWordPressサイトの管理画面・テーマが壊れて絶望したけどなんとか復活まで漕ぎつけた【試行錯誤編】というお話です。
管理画面が壊れた!!
ワードプレスでhttps化の作業中、どうも思うようにいかず、あれやこれや試しているうちに管理画面がおかしなことになりました!
崩れまくってます!怖い!
すぐさまホームページの方に影響は?と思い見てみると、カスタムしたCSSが飛んでるのと、画面一番上に管理画面にあるのと同じエラーメッセージが!
公開したてで告知もこれからなのでアクセスはほぼないサイトとはいえ、稼働中のサイトだったのでこれは非常にまずい!と思い色々試しまくると、子テーマから親テーマに変更するとエラーメッセージが消えたので、取り急ぎ子テーマで設定した変更を親テーマに設定し、見た目は元に戻すことに成功。
一旦ここで落ち着いて冷静に考えられるようになりました。
ちなみに使用していたテーマは、無料なのに多機能で便利なテーマ「Cocoon(コクーン)」です。
壊れた原因は?
管理画面がおかしくなる直前におこなった作業を思い返してみると…
プラグイン「Search Regex」で深そうな部分(「WordPress設定」など)の一括検索置換をしたことがかなり匂います。
というかそれが原因で間違いないでしょう。
何を検索置換してたのかというと、SSL化したのに「保護された通信にならない」問題を解消するために「http」を「https」に変換するという作業をしていました。
なんでバックアップを取らずにやってしまったんだ…と後悔しても後の祭り。
皆さんはこうはならないように、一括検索置換などを試す前には必ずバックアップしておくことをオススメします。
子テーマが壊れた?
なんだか子テーマがおかしくなったっぽいので、とりあえず子テーマでライブプレビューしてみることに。
一瞬3行ほどのエラーメッセージが表示された後、画面が真っ白になりしばらく待っても何も表示されず。
試しに子テーマを有効にすると、先程と同じく画面上にエラーメッセージ、子テーマのカスタムが解除されたような見た目に。
どうも、子テーマが壊れたで間違いないようです。
親テーマのままなら外見上は問題ないけど、子テーマなしで運用するのは非常に非効率だし、何よりエラーメッセージが気持ち悪いのでなんとかしようとじっくり腰を据えて向き合うことにしました。
子テーマを再インストールしてみた
子テーマが壊れているなら子テーマだけ再インストールしたら復旧するのでは?と思い以下の手順で再インストールをしてみました。
・WordPress管理画面から子テーマを削除
・Cocoon公式サイトから子テーマデータをダウンロード
・WordPressにインストール
しかし、状況は変わらず…
そんな単純な話ではなかったようです。
親テーマも再インストールしてみた
ならば親テーマも再インストールしてみてはどうだろう?と思い子テーマと同様の手順で再インストールを試みるも…
子テーマを適用するとエラー画面になり、こちらも変わらず…
思ってた以上に根深いようです。
テーマが壊れているように思ったけどテーマを入れ替えても直らないということは、根本原因はデータベースにあるのでは…?と半ば絶望気味になりました。
WordPressのデータベース修復なんて、とてもじゃないけど筆者のスキルでは手に負えないからです。
エラーメッセージに向き合う
とりあえず落ち着いて、表示されているエラーメッセージに向き合うことにしました。
いくつかピックアップしたのがこちら(ところどころ伏字にしています)。
Warning: Illegal string offset ‘upgrade’ in /home/kir000000/public_html/xxxxxx/wp-admin/includes/dashboard.php on line 29
Warning: Illegal string offset ‘insecure’ in /home/kir000000/public_html/xxxxxx/wp-admin/includes/dashboard.php on line 31
Warning: Illegal string offset ‘nav_menu_locations’ in /home/kir000000/public_html/xxxxxx/wp-includes/theme.php on line 974
Warning: Illegal string offset ‘accesses_table_version’ in /home/kir000000/public_html/xxxxxx/wp-includes/theme.php on line 974
Warning: Illegal string offset ‘speech_balloons_table_version’ in /home/kir000000/public_html/xxxxxx/wp-includes/theme.php on line 974
Warning: Illegal string offset ‘function_texts_table_version’ in /home/kir000000/public_html/xxxxxx/wp-includes/theme.php on line 974
Warning: Illegal string offset ‘item_rankings_table_version’ in /home/kir000000/public_html/xxxxxx/wp-includes/theme.php on line 974
「Illegal string offset」というのが頻繁に出てるので意味を調べてみると、指定された変数が配列ではなく文字列になっているとのこと。
あぁ、分かるようで分からない…
次に分かりそうなところといえば、「~/wp-admin/includes/dashboard.php on line 29」の部分。
/wp-admin/includes というディレクトリ内にある「dashboard.php」の29行目がおかしいというような意味だと思うのですが、「dashboard.php」を開いて29行目を確認するも分からず…
「table_version」という文字も散見しますが、その文字面から察するにやはりデータベースに問題がありそうなエラーメッセージです。
向き合ってみたものの、解決には届かず不安が募っただけの結果となりました。
WordPress本体を再インストールしてみる
データベースに不具合が出ており、自分で直しようがないのであればWordPress本体を再インストールしてしまえば復旧するのでは?と思い、以下の手順で試してみました。
↓やり方はこちらのサイト様を参考にしました
https://www.vektor-inc.co.jp/post/all-in-one-wp-migration/
・不具合が起こっているサーバー上に別ディレクトリを作成し、そこにWordPressを新規インストール
・「All-in-One WP Migration」で先ほどエクスポートしたデータをインポート
結果…ダメでした。
まるまる引っ越しプラグイン「All-in-One WP Migration」では、エラー部分まで引っ越しされてしまうようです。
しかしこのプラグインはビックリするくらい楽に引っ越しできますね!
小規模サイトであれば無料版でも問題なく使えるということで、レンタルサーバー引っ越し時なんかには重宝しそうです。
復旧できた方法は…
こんな感じでこの後もあれやこれやと試行錯誤しましたが、最終的にはなんとか復旧することができました。
長くなってしまったので今回は「試行錯誤編」としまして、「復旧編」は後日別記事としてアップします。
▼「復旧編」アップしました!
本記事がどなたかの参考になれば幸いです。
今回は以上となります。
最後まで読んでいただきましてありがとうございました!
それではまた〜✧٩(ˊωˋ*)و✧
コメント