问题描述
尝试访问类型为bool的值的数组偏移量
$image = wp_get_attachment_image_src( get_post_thumbnail_id(),'thumbnail' );
$my_image = ( $image[0] != '' ) ? '' . $image[0] . '' : '""';
我相信问题与我现在使用的PHP 7.4有关吗?
解决方法
wp_get_attachment_image_src
返回的是布尔值(在您的情况下为false)而不是数组,因为您的图像可能不存在。
在尝试访问阵列之前,请确保检查$my_image
:
$image = wp_get_attachment_image_src( get_post_thumbnail_id(),'thumbnail' );
if (image) {
$my_image = ( $image[0] != '' ) ? '' . $image[0] . '' : '""';
}
文档指出:
返回
(array | false)图像数据的数组;如果没有图像,则为布尔值false 可用。
- (字符串)图像源URL。
- '1'
(int)图像宽度(以像素为单位)。
- '2'
(int)图像高度(以像素为单位)。
- '3'
(布尔)图像是否为调整大小的图像。
来源:https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/
,如WordPress documentation wp_get_attachment_image_src
所述,如果没有可用图像,则可能返回false。如错误所述,您试图始终以数组形式访问返回值,但是它可能是bool
(false
)。
试试这个:
$image = wp_get_attachment_image_src( get_post_thumbnail_id(),'thumbnail' );
$my_image = $image !== false ? '' . $image[0] . '' : '""';