# image-optimization/1.7.4/classes/migration/handlers/fix-avif-with-zero-dimensions.php

Image Optimizer – Compress Images and Convert to WebP or AVIF, version 1.7.4. 57 lines.

- Page: https://pluginprobe.com/plugins/image-optimization/1.7.4/code/classes/migration/handlers/fix-avif-with-zero-dimensions.php
- Raw: https://pluginprobe.com/plugins/image-optimization/1.7.4/raw/classes/migration/handlers/fix-avif-with-zero-dimensions.php
- Modified: 2024-09-24T10:22:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/image-optimization/1.7.4/code/classes/migration/handlers/fix-avif-with-zero-dimensions.php#L10-L20`.

```php
<?php

namespace ImageOptimization\Classes\Migration\Handlers;

use ImageOptimization\Classes\Image\{
	Image,
	Image_Dimensions,
	Image_Query_Builder,
	WP_Image_Meta,
};

use ImageOptimization\Classes\Migration\Migration;
use Throwable;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

class Fix_Avif_With_Zero_Dimensions extends Migration {
	public static function get_name(): string {
		return 'fix_avif_with_zero_dimensions';
	}

	public static function run(): bool {
		$query = ( new Image_Query_Builder() )
			->set_mime_types( [ 'image/avif', 'application/octet-stream' ] )
			->return_images_with_non_empty_meta()
			->execute();

		if ( ! $query->post_count ) {
			return true;
		}

		foreach ( $query->posts as $attachment_id ) {
			try {
				$wp_meta = new WP_Image_Meta( $attachment_id );
				$image = new Image( $attachment_id );

				foreach ( $wp_meta->get_size_keys() as $size_key ) {
					if ( 0 === $wp_meta->get_width( $size_key ) || 0 === $wp_meta->get_height( $size_key ) ) {
						$dimensions = Image_Dimensions::get_by_path( $image->get_file_path( $size_key ) );

						$wp_meta
							->set_width( $size_key, $dimensions->width )
							->set_height( $size_key, $dimensions->height )
							->save();
					}
				}
			} catch ( Throwable $t ) {
				continue;
			}
		}

		return true;
	}
}

```
