函数文档

_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.

Return

array|false Array of width and height or false if the size isn’t present in the meta data.

  • 0 int
    Image width.
  • 1 int
    Image height.

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.