突然、ブログの上部に次のようなエラー通知が表示され、トップページの表示が崩れてしまいました。
Notice: Undefined index:(中略 )/plugins/ninja-forms/includes/Fields/place.php on line 3
前回の「突然、メールアプリが開かない」という記事のように、前日までは全く問題が無かったブログが突然このような状態になりました。
結論から言いますと、プラグインとPHPのバージョンの問題でしたので、とりあえずNinja Formsというプラグインを無効化にしたところ、エラー通知は消えて、トップページ表示も正常になりました。
まあ、しばらくはNinja Formsを無効化しますので、このブログの「お問合わせフォーム」はその間停止となりますので、よろしくお願いします。
Ninja Formsが修正されれば即再開ですが、長引くようですと別のプラグインに替えようかと思っています。
結論は以上ですが、似たような現象で困っている方へ、今回はもう少し詳しく記載しておきます。
ちなみに、プラグインというのは、WordPressの既存の機能や設定したテーマを補うために、便利な機能を追加してカスタマイズできるツールです。
また、PHP というのは、WordPress を構築するために使用されるプログラミング言語の1つです。
◆プラグインとPHPのバージョン
プラグインは自動更新にしていますので、Ninja Formsがバージョン 3.6.14に更新されたさいにエラーが発生したものと思われます。
検索したところ、PHP の推奨バージョンは 7.4 以上らしいので、PHPのバージョンを 7.4.33に更新してみました。
しかし、エラー通知は消えず、トップページ表示の崩れはそのままです。
なので、さらにPHPのバージョンを8へと更新してみました。
今度は複数のエラー通知が表示されたので、慌てて7.4.33に戻しました。
そこで、どういう時に「Notice: Undefined index」と表示されるのか検索しました。
その結果、$_POSTや$_GET(フォーム入力値やURLパラメータ)から値を受け取る処理でよく発生するらしいです。
原因は、そのスクリプトへの初回アクセス時と2回目以降のアクセスで処理を切り分けていないことが考えられるそうです。
その対処法として、「$_POST[“test”]に値が入っているときは…という条件を設定することで、初回アクセス時は$_POSTを参照しないので、エラーメッセージは表示されなくなるとのことです。
しかし、PHPを熟知されている方ならともかく、私のような素人がPHPを修正すれば、取り返しのつかない泥沼に入りそうなので、しばらく放置することにしたのです。
ちなみに、私はWordPress 6.1.1でCocoon Child テーマを使用中です。
◆トップページ表示の崩れとは?
通常は上図左のようにトップページに記事の一覧が適度な間隔でズラ~と表示されますが、上図右のように各記事の間隔が異常に大きくなりました。
ディスプレイでは、1個の記事紹介だけが表示されているように見えます。次の記事紹介は遥か下に表示され、そのまた次の記事紹介も同様に広い間隔で表示されます。
ということで、しばらく様子をみたいと思います。
※この記事に掲載されている情報については最新の情報とは限りません。必ずご自身で事前にご確認の上、ご利用ください。