PHPのバージョン変更したことでエラーが出る
PHPバージョン7系のサーバーからPHPバージョン8系サーバーにサイト移管した時のことです。
Warning: Undefined array key 0 in ~
のようなエラーが出ました。
そもそもちゃんと新しいサーバーでテストサイトを作って行うのが最上ですが、工数に入ってなかったので深夜に突貫作業しました。
※良い子は真似しないでください(^o^)
エラーが出ているPHPのソースを見てみるとどうやらカテゴリ名取得でエラーが起こっている。
そもそも7系でエラーが出ていなかったので7系なら大丈夫じゃねえかな、と一旦サーバーのPHPバージョンを7系にしてみる。
エラーが出ない。ミッションコンプリート!
…んなわけない。このまま終わったら8系への対応を見捨てるということになります。
お金貰わずサービスでやるならこういう暫定処置もするけど。
さて、再度PHPを8系に戻してソースを見てみる。
$category = get_the_category();
$cat_id = $category[0]->cat_ID;
$cat_name = $category[0]->cat_name;
$cat_slug = $category[0]->category_nicename;
このままだと$categoryに値が入らない場合、上記エラーが出るので、
$category = get_the_category();
if(isset($category, $category[0])) {
$cat_id = $category[0]->cat_ID;
$cat_name = $category[0]->cat_name;
$cat_slug = $category[0]->category_nicename;
}
このように修正。エラーは出なくなりました。
カテゴリ内に適当な記事を入れるだけでも回避できそうだけど、プログラム的にはよろしくないです。
ちゃんとエラー処理は作っておきましょう。
いじょう。
関連記事
-
-
アーカイブページでタームごとに記事一覧を出力する
カスタム投稿の記事一覧を出したい ターム名1(カスタム投稿の「カテゴリ名」のよう …
-
-
サイトに重大なエラーがありました。と出てきて顔面蒼白になる
WordPressを使っていると稀にこの事象に出くわします。 バックアップが運良 …
-
-
Limit Login Attempts Reloadedとしてヤツが帰ってきた件
かんたん優秀なセキュリティ、「Limit Login Attempts」 Lim …
-
-
別ページのカスタムフィールドの値を取りたいときー
トップページにカスタムフィールドの値を出したい時ってありますよね? そんな時は固 …
-
-
WordPressの検索機能をもっと使いやすくする
とってもわかりやすい記事がありましたので紹介! WEBクリエイターズボックス様 …
-
-
外部画像URLもアイキャッチに「Featured Image From URL」
外部画像URLをアイキャッチに出来るプラグインを発見したのでご紹介。 Featu …
-
-
Redirectionプラグイン:REST APIの検索で止まる
久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …
-
-
GravatarでWordPressのアバターを作ろう
最近物忘れがヒドイ、だいすけです。 テーレッテレー!! ついこの前、ワードプレス …
-
-
カスタムフィールドの画像をアイキャッチに自動登録
毎度おなじみ自分への忘備録です。 投稿時にカスタムフィールドの画像 …
-
-
WP_Queryの使い方
WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …