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;
}
このように修正。エラーは出なくなりました。
カテゴリ内に適当な記事を入れるだけでも回避できそうだけど、プログラム的にはよろしくないです。
ちゃんとエラー処理は作っておきましょう。
いじょう。
関連記事
-
-
各固定ページのページデザインをテンプレート選択で可能にする方法
よく使うのに忘れてしまうのでまた忘備録がわりに・・・。 【ネタ元:はじめてのWo …
-
-
月別アーカイブページでカテゴリ指定
月別アーカイブページでカテゴリ指定したい・・・ でも、query_postsやW …
-
-
WordPress 不正アクセスとの飽くなき戦い
不正アクセス・・・それはWEB黎明期から行われてきた悪しき犯罪。 これらと日々戦 …
-
-
ショートコードの出力結果が固定ページや投稿の上部に表示される
またもやWordPress覚書。もはやメモ帳代わり。 固定ページなどの途中でPH …
-
-
Redirectionプラグイン:REST APIの検索で止まる
久しぶりのWordPress忘備録。 Redirectionプラグインを初期設定 …
-
-
子カテゴリに親カテゴリのテンプレートを引き継がせる
WordPressって基本的に親カテゴリを指定すると、それにぶら下がっている子カ …
-
-
カスタムフィールドの値をURL指定して記事をソートする
WordPressは記事ソートや抽出が中々優秀でして、URLから指定してあげるこ …
-
-
「パスワードは、記号を含むか、20 文字以上でなければなりません。」で苦しんだ話
ワードプレスのユーザーを追加する際、パスワードを設定するんですが、ここでつまづい …
-
-
ワードプレスのサイト引越し時に500エラー
毎度おなじみのワードプレス備忘録です。 表題の通り、よくある(よくあってほしくな …
-
-
WordPressで会員サイト的なものを作りたい
WordPressで会員サイト的なものを作る と言う題目で幾つか記事があったんで …