【WordPress】PHP8にしたらアイキャッチ画像がないときダミー画像を表示するコードでエラーが出た解決方法

WordPressが入ってるドメインのPHPバージョンをPHP8に変更したらアイキャッチ画像の部分でエラーが発生したので書き換えたときのメモ。

PHP8でWordPressを使ってサイトを構築中。
アイキャッチがないときはダミー画像を表示するコード部分でエラーとな。

今までのコードだとエラーが出るのね。
bool型の値の配列オフセットにアクセスしようとしています〜って。

//エラーが出た昔のコード
if ( has_post_thumbnail() ) {
$image_id = get_post_thumbnail_id();
$imgSrc = wp_get_attachment_image_src($image_id)[0];
}
else{
$imgSrc = get_template_directory_uri() . "/assets/images/common/dummy.png";
}

エラーの解決方法を検索してもコードが出てこなかったのでchatGPTさんに聞いてみた。
そしたら即解決!ありがたや~

ということで、エラーが直ったコピペ用のコードを貼り付けておく。

//エラーが直ったコード
if ( has_post_thumbnail() ) {
    $image_id = get_post_thumbnail_id();
    $imgSrc = wp_get_attachment_image_src($image_id);
    
    if ($imgSrc) {
        // wp_get_attachment_image_srcが正常に動作した場合
        $imgSrc = $imgSrc[0];
    } else {
        // 何らかの理由でwp_get_attachment_image_srcが失敗した場合
        $imgSrc = get_template_directory_uri() . "/assets/images/common/dummy.png";
    }
} else {
    // サムネイルがない場合
    $imgSrc = get_template_directory_uri() . "/assets/images/common/dummy.png";
}

これでアイキャッチ画像の表示部分は何も変更なくエラーが直った!

<img src="<?php echo $imgSrc ?>" alt="<?php the_title(); ?>">

PHPバージョン変えるときエラーが出るから怖いけど、古いままも怖い。
常に最新!ってわけではないけど、なるべく新しいバージョンで運用していきたいよね〜

ABOUT US
yukipan
Web制作会社で働いてます。パンダとかリラックマとか、まあるいものが好き。好奇心旺盛で、何にでも興味をもってしまう。とりあえずやってみてから取捨選択するのがモットー。今はグリーンカレーとチャイと株式投資がブーム。