_wp_get_image_size_from_meta()
云策文档标注
概述
_wp_get_image_size_from_meta() 函数用于从图像元数据中获取指定尺寸的宽度和高度数组,常用于响应式图像处理。
关键要点
- 函数接受两个参数:$size_name(图像尺寸名称,如 'full' 或注册尺寸)和 $image_meta(图像元数据数组)。
- 返回值为数组(包含宽度和高度)或 false(如果尺寸在元数据中不存在)。
- 内部逻辑:若 $size_name 为 'full',则直接返回元数据中的原始宽度和高度;否则检查 $image_meta['sizes'][$size_name] 是否存在并返回对应尺寸。
代码示例
function _wp_get_image_size_from_meta( $size_name, $image_meta ) {
if ( 'full' === $size_name ) {
return array(
absint( $image_meta['width'] ),
absint( $image_meta['height'] ),
);
} elseif ( ! empty( $image_meta['sizes'][ $size_name ] ) ) {
return array(
absint( $image_meta['sizes'][ $size_name ]['width'] ),
absint( $image_meta['sizes'][ $size_name ]['height'] ),
);
}
return false;
}注意事项
- 函数使用 absint() 确保返回的宽度和高度为非负整数。
- 自 WordPress 4.4.0 版本引入,用于支持响应式图像功能。
- 相关函数包括 wp_calculate_image_sizes() 和 WP_Widget_Media_Image::render_media()。
原文内容
Gets the image size as array from its meta data.
Description
Used for responsive images.
Parameters
$size_namestringrequired-
Image size. Accepts any registered image size name.
$image_metaarrayrequired-
The image meta data.
Source
function _wp_get_image_size_from_meta( $size_name, $image_meta ) {
if ( 'full' === $size_name ) {
return array(
absint( $image_meta['width'] ),
absint( $image_meta['height'] ),
);
} elseif ( ! empty( $image_meta['sizes'][ $size_name ] ) ) {
return array(
absint( $image_meta['sizes'][ $size_name ]['width'] ),
absint( $image_meta['sizes'][ $size_name ]['height'] ),
);
}
return false;
}
Changelog
| Version | Description |
|---|---|
| 4.4.0 | Introduced. |