Функция image_get_intermediate_size()
в WordPress позволяет получить данные о промежуточном размере изображения, включая его путь, ширину и высоту. Эта функция полезна, когда вам необходимо работать с изображениями и их размерами, получая только те параметры, которые вам нужны.
image_get_intermediate_size( int $post_id, string|int[] $size = ‘thumbnail’ ): array|false
Описание функции
Функция image_get_intermediate_size()
принимает идентификатор вложения (обычно это ID загруженного изображения) и запрашивает информацию о размере, который вы указали. Если точного размера не найдено, функция попытается найти ближайший больший размер. Если подходящих размеров нет, будет возвращено false
.
Параметры
$post_id
(int) — обязательный параметр, идентификатор вложения (attachment ID).$size
(string|int[]) — необязательный параметр, размер изображения. Это может быть строка, представляющая зарегистрированный размер, или массив с шириной и высотой в пикселях. По умолчанию используется размерthumbnail
.
Возвращаемое значение
- array|false — массив с данными о размере изображения (если он существует) или
false
, если изображение не найдено. В массиве содержатся:file
— имя файла изображения.width
— ширина изображения в пикселях.height
— высота изображения в пикселях.path
— относительный путь к изображению в директории загрузок.url
— URL изображения.
Пример 1: Получение промежуточного размера изображения
Допустим, у вас есть изображение с ID 123, и вы хотите получить его средний размер (medium
):
$intermediate = image_get_intermediate_size( 123, 'medium' );
print_r( $intermediate );
Ожидаемый вывод:
Array
(
[file] => example-medium.jpg
[width] => 300
[height] => 200
[mime-type] => image/jpeg
[path] => 2024/10/example-medium.jpg
[url] => http://example.com/wp-content/uploads/2024/10/example-medium.jpg
)
Пример 2: Использование массива для указания размера
Вы также можете указать размер в виде массива, например, если вам нужно изображение размером 100×100 пикселей:
$intermediate = image_get_intermediate_size( 4832, array(100, 100) );
print_r( $intermediate );
Ожидаемый вывод:
Array
(
[file] => example-100x100.jpg
[width] => 120
[height] => 90
[mime-type] => image/jpeg
[path] => 2024/10/example-100x100.jpg
[url] => http://example.com/wp-content/uploads/2024/10/example-100x100.jpg
)
Пример 3: Проверка наличия изображения и его вывод
В этом примере мы создадим функцию, которая будет проверять наличие изображения и выводить его, если оно существует:
function display_image_if_exists( $size ) {
global $post;
// Получаем ID миниатюры поста
$thumbnail_id = get_post_thumbnail_id( $post->ID );
// Получаем данные изображения
$image = image_get_intermediate_size( $thumbnail_id, $size );
// Если изображение найдено, выводим его
if ( $image ) {
echo '<img src="' . esc_url( $image['url'] ) . '" alt="" width="' . esc_attr( $image['width'] ) . '" height="' . esc_attr( $image['height'] ) . '" />';
} else {
echo 'Изображение не найдено';
}
}
// Используем функцию
display_image_if_exists('medium');
Заключение
Функция image_get_intermediate_size()
является мощным инструментом для работы с изображениями в WordPress. Она позволяет получать нужные параметры изображения и эффективно управлять его отображением на сайте. Используя приведенные выше примеры, вы сможете легко интегрировать данную функцию в вашу тему или плагин, обеспечивая необходимую гибкость и контроль над размерами изображений.