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