Функция get_intermediate_image_sizes()
в WordPress возвращает список всех промежуточных размеров изображений, которые были зарегистрированы на сайте. Эти размеры используются при автоматическом создании дополнительных версий загружаемых изображений с различными размерами.
get_intermediate_image_sizes(): string[]
Возвращаемое значение:
- Массив строк — список имен всех зарегистрированных промежуточных размеров изображений.
Описание
Когда изображение загружается в медиабиблиотеку WordPress, система автоматически создает его копии в разных размерах. Эти размеры могут быть заданы в настройках WordPress или добавлены с помощью функции add_image_size()
. Функция get_intermediate_image_sizes()
возвращает список всех этих размеров в виде массива.
Однако, данная функция возвращает только названия размеров, без указания их ширины, высоты или информации о кадрировании. Для получения детальной информации о каждом размере можно использовать другие функции, например, wp_get_additional_image_sizes()
или wp_get_registered_image_subsizes()
.
Пример 1: Получение всех доступных размеров изображений
Вы можете просто вывести массив всех доступных размеров изображений, используя следующую команду:
$sizes = get_intermediate_image_sizes();
print_r( $sizes );
Результат:
Array
(
[0] => thumbnail
[1] => medium
[2] => medium_large
[3] => large
[4] => custom-size
)
В данном примере мы видим несколько стандартных размеров (thumbnail, medium, large) и один пользовательский размер (custom-size).
Пример 2: Получение размеров изображений с подробной информацией
Если вам нужно получить не только названия размеров, но и их параметры (ширину, высоту, кадрирование), можно создать функцию, которая соберет эти данные:
function get_image_sizes_details() {
$sizes = get_intermediate_image_sizes();
$wp_additional_image_sizes = wp_get_additional_image_sizes();
$details = array();
foreach ( $sizes as $size ) {
if ( in_array( $size, array( 'thumbnail', 'medium', 'medium_large', 'large' ) ) ) {
$details[ $size ] = array(
'width' => get_option( "{$size}_size_w" ),
'height' => get_option( "{$size}_size_h" ),
'crop' => (bool) get_option( "{$size}_crop" ),
);
} elseif ( isset( $wp_additional_image_sizes[ $size ] ) ) {
$details[ $size ] = array(
'width' => $wp_additional_image_sizes[ $size ]['width'],
'height' => $wp_additional_image_sizes[ $size ]['height'],
'crop' => $wp_additional_image_sizes[ $size ]['crop'],
);
}
}
return $details;
}
print_r( get_image_sizes_details() );
Результат:
Array
(
[thumbnail] => Array
(
[width] => 150
[height] => 150
[crop] => true
)
[medium] => Array
(
[width] => 300
[height] => 300
[crop] => false
)
[medium_large] => Array
(
[width] => 768
[height] => 0
[crop] => false
)
[large] => Array
(
[width] => 1024
[height] => 1024
[crop] => false
)
[custom-size] => Array
(
[width] => 600
[height] => 400
[crop] => true
)
)
Этот код выводит список размеров вместе с их параметрами: шириной, высотой и параметром кадрирования (crop).
Пример 3: Получение конкретного размера изображения
Если вам нужно получить данные только для одного конкретного размера, вы можете передать его название в функцию:
function get_single_image_size( $size ) {
$sizes = get_image_sizes_details();
return isset( $sizes[ $size ] ) ? $sizes[ $size ] : false;
}
$large_size = get_single_image_size( 'large' );
print_r( $large_size );
Результат:
Array
(
[width] => 1024
[height] => 1024
[crop] => false
)
Если указанного размера не существует, функция вернет false
.
Пример 4: Вывод всех размеров с форматированием для HTML
Этот пример показывает, как можно вывести список всех размеров изображений в формате HTML-списка:
$sizes = get_image_sizes_details();
echo '<ul>';
foreach ( $sizes as $size_name => $size_data ) {
echo "<li>{$size_name}: {$size_data['width']}x{$size_data['height']}, crop: " . ($size_data['crop'] ? 'true' : 'false') . "</li>";
}
echo '</ul>';
Результат:
<ul>
<li>thumbnail: 150x150, crop: true</li>
<li>medium: 300x300, crop: false</li>
<li>medium_large: 768x0, crop: false</li>
<li>large: 1024x1024, crop: false</li>
<li>custom-size: 600x400, crop: true</li>
</ul>
Заключение
Функция get_intermediate_image_sizes()
— это простой способ получить список зарегистрированных промежуточных размеров изображений в WordPress. Она полезна для управления изображениями, особенно если сайт использует несколько кастомных размеров. Чтобы получить более подробную информацию о каждом размере, можно использовать дополнительные функции или написать свою.