Функция image_downsize()
в WordPress используется для масштабирования изображения до нужного размера, такого как ‘thumbnail’, ‘medium’, или ‘large’. Эта функция не создаёт новое изображение, а возвращает уже существующую версию с нужными размерами, если такая доступна.
image_downsize( int $id, string|int[] $size = ‘medium’ ): array|false
Описание
image_downsize()
возвращает массив с данными об изображении — URL, ширину, высоту и информацию о том, является ли изображение уменьшенной копией. Если требуемого размера не существует, функция возвращает URL оригинального изображения.
Эта функция не создаёт новую копию изображения, она просто возвращает уже существующую, которая была сгенерирована при загрузке изображения. Для того, чтобы настроить новые размеры изображений, можно использовать функцию add_image_size()
.
Применение в плагинах:
- Используйте фильтр
image_downsize
, чтобы подключить свою логику для работы с изображениями. - Фильтр должен возвращать массив с теми же элементами, что и сама функция.
Параметры
$id
(int) — ID вложения (изображения), данные которого нужно получить. Обязательный параметр.$size
(string|array) — Имя зарегистрированного размера изображения или массив с шириной и высотой. По умолчанию: ‘medium’.
Возвращаемое значение
array|false
— Массив с данными об изображении илиfalse
, если изображение не найдено.
Формат возвращаемого массива:
array(
[0] => url // URL изображения
[1] => width // Ширина изображения в пикселях
[2] => height // Высота изображения в пикселях
[3] => true // true, если возвращена уменьшенная копия, а не оригинал
)
Пример 1: Получение URL изображения среднего размера
В этом примере создадим функцию, которая возвращает URL изображения среднего размера (medium) для заданного ID вложения.
function wp_get_attachment_medium_url( $id ) {
// Используем image_downsize() для получения данных изображения среднего размера
$medium_array = image_downsize( $id, 'medium' );
// Возвращаем URL изображения
return $medium_array ? $medium_array[0] : false;
}
$attachment_id = 12345; // ID вложения
$medium_image_url = wp_get_attachment_medium_url( $attachment_id );
if ( $medium_image_url ) {
echo "URL изображения среднего размера: " . $medium_image_url;
} else {
echo "Изображение не найдено или его невозможно уменьшить.";
}
Этот пример показывает, как получить URL изображения среднего размера для вложения с ID 12345
.
Пример 2: Получение изображения для произвольных размеров
Иногда может понадобиться задать произвольные размеры для получения изображения. В следующем примере передаём массив ширины и высоты, чтобы получить наиболее подходящую версию изображения.
$attachment_id = 67890; // ID вложения
// Запрашиваем изображение размером 200x150 пикселей
$image_data = image_downsize( $attachment_id, array( 200, 150 ) );
if ( $image_data ) {
echo "URL изображения: " . $image_data[0] . "<br>";
echo "Ширина: " . $image_data[1] . "px<br>";
echo "Высота: " . $image_data[2] . "px<br>";
echo $image_data[3] ? "Это уменьшенная копия" : "Это оригинал изображения";
} else {
echo "Изображение не найдено.";
}
В этом примере функция подбирает наиболее подходящий вариант изображения для заданных размеров (200×150).
Пример 3: Как работает функция с разными размерами
Предположим, что у нас есть изображение с ID 45678
, которое имеет оригинальные размеры 1200×800 пикселей. Мы можем запросить разные версии изображения и посмотреть результат.
$attachment_id = 45678;
// Оригинальный размер изображения
$full_image = image_downsize( $attachment_id, 'full' );
print_r( $full_image );
// Миниатюра (thumbnail)
$thumbnail_image = image_downsize( $attachment_id, 'thumbnail' );
print_r( $thumbnail_image );
// Средний размер (medium)
$medium_image = image_downsize( $attachment_id, 'medium' );
print_r( $medium_image );
// Произвольный размер
$custom_image = image_downsize( $attachment_id, array( 300, 200 ) );
print_r( $custom_image );
Результат:
// Оригинальный размер (1200x800)
Array
(
[0] => http://example.com/wp-content/uploads/2024/10/sample-image.jpg
[1] => 1200
[2] => 800
[3] => false
)
// Миниатюра (150x150)
Array
(
[0] => http://example.com/wp-content/uploads/2024/10/sample-image-150x150.jpg
[1] => 150
[2] => 150
[3] => true
)
// Средний размер (300x200)
Array
(
[0] => http://example.com/wp-content/uploads/2024/10/sample-image-300x200.jpg
[1] => 300
[2] => 200
[3] => true
)
// Произвольный размер (300x200)
Array
(
[0] => http://example.com/wp-content/uploads/2024/10/sample-image-300x200.jpg
[1] => 300
[2] => 200
[3] => true
)
Заключение
Функция image_downsize()
полезна для получения изображений нужного размера без создания новых копий. Она используется для получения URL и параметров уже сгенерированных изображений. Функция поддерживает стандартные размеры изображений, а также произвольные размеры, переданные в виде массива.