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;
}
このように修正。エラーは出なくなりました。
カテゴリ内に適当な記事を入れるだけでも回避できそうだけど、プログラム的にはよろしくないです。
ちゃんとエラー処理は作っておきましょう。
いじょう。
関連記事
-
-
テーマの自動アップデートがイヤな場合は
最近梅の花がとってもきれいに咲いてますね。 春の訪れを感じながら仕事に追われる「 …
-
-
WordPressで会員サイト的なものを作りたい
WordPressで会員サイト的なものを作る と言う題目で幾つか記事があったんで …
-
-
嫁の人用:WordPressで記事を取得、ループしたいときに-その1
WordPressの制御部分の基本です。 主にメインループの事を描かせていただき …
-
-
新着情報などでAll-in-One Event Calendarのカテゴリ名を表示する方法
ハマりました。 ドハマリしました。侮ってました。 「カテゴリ出力するだけでしょ。 …
-
-
WordPressで記事ごとに簡単リダイレクト「Page Links To」
WordPressの記事を別ページに置き換えたくなるときってありませんか? たと …
-
-
Instant WordPress入れてみる
Instant WordPressという、ネット上のサーバーではなくローカルPC …
-
-
マルチサイトで複数のブログの新着情報を取得したい
WordPressでマルチサイトの新着情報を取りたいなーと思うことがあったのでメ …
-
-
WordPressでよく使うコードまとめ
完全に自分用です。 View the code on Gist.
-
-
WP_Queryの使い方
WP_Queryの使い方はちょくちょく忘れますので忘備録。 WP_Queryの使 …
-
-
All-in-One Event Calendarでエラー「イベントの取得中に何かがうまくいきませんでした。」
使い慣れないプラグインは変なことが起こるのでびっくりデスよ。 表題のエラーが起こ …
