いつも弊サイト(鉄道ラボ)をご覧いただきありがとうございます。昨日1/24に一部時間(10分ほど)に弊サイトにアクセスできないという現象が発生し、その前後時間帯に表示が乱れる(いつもの表示ではなくなる)という現象が発生いたしました。このことに関してお詫びするとともに、原因を公表いたします。
図1. 今回の原因はテーマの引継ぎに失敗した(が今は問題ない)ため(このsimplicity2は良いテーマです)
原因:テーマの更新
弊サイトはWordPressを使用しています。WordPressの詳細な解説は省略します(し、詳しいことはわかっていない)が、簡単にいうと、ブログを作る無料のツールとお考えください。WordPressは最低限の機能しかありませんので、各自で必要な機能を導入します。その必要な機能を入れる1つの方法として、「テーマ」があります。テーマとは、デザインや機能(広い意味では機能もデザインです)を兼ね備えた1つのテンプレートです。私は無料かつ評判の良いsimplicity2を導入しています。
今回、simplicity2のバージョンアップをしたため、私が独自に実施したカスタマイズが反映するまで時間がかかってしまいました。また、バージョンアップする瞬間には一時的に別のテーマを導入したため、その瞬間には表示が大幅に乱れました。これが表示が「いつもと違う」原因です。さらに、子テーマにカスタマイズを転記している際にミスが生じ、一時的にアクセスできない事態となってしまいました(22時ごろ)。
以下、その詳細を背景も含めてお伝えします。
テーマ更新の理由
もともとテーマを更新しなければ、このような事態が生じませんでした。では、なぜ更新したのでしょうか。その発端はgoogleからの1つのメールに始まりました。
Search Console により、貴サイトに影響する「パンくずリスト」関連の問題が 1 件検出されました。
主な警告
警告は、サイトの改善のための推奨項目です。警告によっては、検索結果での表示に影響がある場合がございます。また、警告が今後エラーになることも考えられます。貴サイトでは、以下の警告が検出されました。
data-vocabulary.org schema deprecated
上記の問題をできる限り解決されることをおすすめいたします。こうした問題を解消することで、サイトのエクスペリエンスや Google 検索結果での表示を最適化できます。
引用元:googleからのメール
意味がわかりません。「パンくずリスト」とはカテゴリーを表示するリストです(図1)。念のためページを触ったら、パンくずリストは機能しますし、何が悪いのでしょうか。
図1. パンくずリストが表示されている様子
メール文面をコピペしてインターネット先生に聞いたところ、パンくずリストを構造化するテンプレートが古くて、2020年4月からサポート対象外になるとのことでした。simplicity2の場合は最新のバージョンに変更すれば対応可能ということもわかりました。
バージョンアップ?それだと今までカスタマイズした内容が全て無に帰すではありませんか!私の作業はここからスタートしたのです。
子テーマにカスタマイズ内容を反映する
セオリー通りであれば、子テーマにカスタマイズして、親テーマをいじらないものです。親テーマというのはテーマそのもの、子テーマはテーマをカスタマイズするための分身と理解しています。けれど、私は当初子テーマをうまくダウンロードできませんでしたので、親テーマを直接カスタマイズしていました。そこで、主要なカスタマイズ内容を子テーマに反映させることからスタートしたのです。
私がカスタマイズした内容は幸いなことに、弊サイトに書いていました(けれどh2のカスタマイズは若干異なっていて苦労しました)。なので、その記述を子テーマに書き込むだけです。記録をとる重要性がわかっている私はさすがですね!
・WordPressのデザインカスタマイズとおすすめプラグイン
・グローバルナビゲーションを常に表示する方法【simplicity2】
・サイドバーにきれいにタグを表示する方法(simplicity2)
また、カスタマイズ画面からカスタマイズした内容の多くは親テーマから子テーマに引き継がれていました。それだけsimplicity2は使い勝手の良いテーマなのでしょう(私は他のテーマをまともにいじった経験はありませんが…)。この作業は1/23の夜にスタートし、作業時間帯だけ子テーマを有効化、その他の時間帯は親テーマを有効化していました。
親テーマのカスタマイズ:失敗!
1/24の22時ごろのことです。親テーマのphpファイルを変更していたら、ファイル変更に失敗したためか、サイトがクラッシュしました。具体的には、以下の通りです。
WordPress 5.2から、サイトでプラグインやテーマが致命的なエラーを発生させた場合にそれを検知してこの自動メールでお知らせする機能が追加されました。
今回の場合、WordPress がテーマ Simplicity2 でエラーを捉えました。
まずはじめに、ご自分のサイト (https://tetsudoulab.com/) を開き、目に見える問題がないか確認してください。次に、エラーが発生したページ (https://tetsudoulab.com/wp-admin/themes.php?_error_nonce=fae6470a76) を開き、同様に問題がないか確認してください。
この問題をさらに調査するにはサーバーホストに連絡してみてください。
もしサイトが壊れていてダッシュボードに正常に接続できない場合、WordPress には特別な「リカバリーモード」があります。これによりダッシュボードに安全にログインし、さらに調査をすることができます。
引用元:WordPressからのメール
何も表示されない状態だったということです。幸いなことに、子テーマにほとんどのカスタマイズを反映しました。テーマファイルが壊れていたのでしょう。リカバリーモードで起動し、壊れたテーマファイルを削除、同時に別のテーマをすぐに導入して、「いつもと表示がおかしいけど見ることはできる」状態としました。その後すぐに新しいバージョンで親テーマを導入しました。別のテーマは5分でお役御免です。
ある意味突発でしたが(本当はもう少し子テーマをカスタマイズしてから親テーマを更新したかった)、simplicity2を更新することができたのです。
サイトタイトルが中央寄せになっていないとか、グローバルナビゲーションの文字の太さが異なるなどの不具合があったものの、何とかコードを修正したのでした。でも、スマホで見たときに見出しの文字が大きいのは気になるな…。
諸悪の根源は私が子テーマにカスタマイズしていなかったことです。今後は極力子テーマにカスタマイズしようと思ったのです。