Функция wp_getimagesize()
используется для получения размеров и другой информации о изображении. Она является обёрткой для стандартной PHP-функции getimagesize()
, но предоставляет дополнительные возможности для обработки ошибок и получения расширенной информации, когда это необходимо. Например, она позволяет подавлять ошибки или перехватывать их в процессе отладки.
wp_getimagesize( string $filename, array $image_info = null ): array|false
- Функция:
wp_getimagesize( string $filename, array $image_info = null ): array|false
- Аргументы:
$filename
(строка, обязательный): Путь до файла изображения.$image_info
(массив, необязательный): Массив для расширенной информации о изображении. Этот параметр передается по ссылке и может быть использован для получения расширенных данных, таких как IPTC метаданные.
- Возвращаемые значения: Возвращает массив данных изображения или
false
в случае ошибки.
Пример возвращаемого массива
Array
(
[0] => 440 // Ширина изображения
[1] => 95 // Высота изображения
[2] => 3 // Тип изображения (IMAGETYPE_PNG в данном случае)
[3] => width="440" height="95" // Строка, готовая для использования в атрибуте <img>
[bits] => 8 // Глубина цвета
[mime] => image/png // MIME-тип изображения
)
Использование функции
Пример 1: Получение данных о изображении по пути
В данном примере мы получаем размеры изображения и другую сопутствующую информацию, используя полный путь к изображению, загруженному в медиабиблиотеку WordPress.
$attachment_id = 54321; // ID изображения в WordPress
$path = get_attached_file( $attachment_id ); // Получаем путь к файлу
// Извлекаем информацию о изображении
$image_data = wp_getimagesize( $path );
// Выводим полученные данные
if ($image_data !== false) {
echo 'Ширина: ' . $image_data[0] . 'px<br>';
echo 'Высота: ' . $image_data[1] . 'px<br>';
echo 'MIME-тип: ' . $image_data['mime'];
} else {
echo 'Ошибка получения информации о изображении.';
}
В этом примере получаются ширина, высота и MIME-тип изображения, которое хранится в WordPress.
Пример 2: Работа с изображениями через URL
Часто возникает необходимость получения данных о изображении, загруженном через URL. В этом примере показано, как можно получить размеры и информацию о изображении, используя URL изображения, загруженного в медиатеку WordPress.
$src = 'https://example.com/wp-content/uploads/2024/05/sample-image.jpg'; // URL изображения
// Получаем директории загрузок
$upload_dir = wp_upload_dir();
// Преобразуем URL в путь на сервере
$image_path = str_replace( $upload_dir['baseurl'], $upload_dir['basedir'], $src );
// Получаем данные изображения
$image_data = wp_getimagesize( $image_path );
// Выводим данные
if ($image_data !== false) {
echo 'Ширина: ' . $image_data[0] . 'px<br>';
echo 'Высота: ' . $image_data[1] . 'px<br>';
echo 'Тип: ' . $image_data[2] . '<br>';
echo 'MIME: ' . $image_data['mime'];
} else {
echo 'Ошибка получения данных изображения по URL.';
}
Пример 3: Получение информации о изображении напрямую по URL
Хотя это не рекомендуется, можно получать данные напрямую по URL изображения, что замедлит работу скрипта из-за необходимости выполнения HTTP-запроса.
// Получаем данные изображения по URL
$image_data = wp_getimagesize( 'https://example.com/uploads/sample.png' );
// Проверяем результат
if ($image_data !== false) {
print_r($image_data);
} else {
echo 'Ошибка получения данных изображения.';
}
Особенности и использование в WordPress
- Отладка ошибок:
wp_getimagesize()
является полезной в режиме отладки, так как перехватывает и подавляет ошибки, которые могут возникать в стандартнойgetimagesize()
функции PHP, например, ошибки повреждённых JPEG данных. - Поддержка форматов: Поддерживаются такие типы изображений, как PNG, JPEG, GIF, WebP и AVIF.
- Расширенные данные: Помимо основных данных (ширина, высота, MIME-тип), функция может возвращать информацию о глубине цвета (bits) и количестве каналов (channels), например, для RGB и CMYK изображений.
Заключение
wp_getimagesize()
— это мощная функция, которая облегчает работу с изображениями в WordPress, предлагая простой способ получения основных характеристик изображения. Эта функция полезна для динамической генерации тегов <img>
с правильными размерами, а также для обработки метаданных и управления изображениями на сайтах WordPress.