Функция get_intermediate_image_sizes()
Функция get_intermediate_image_sizes() в WordPress позволяет получить доступные промежуточные размеры изображений. Эта полезная функция может быть использована как разработчиками, так и обычными пользователями WordPress для работы с изображениями на вашем сайте.
Основная информация
- Версия: WordPress 3.0.0
- Используется в:
wp_get_registered_image_subsizes()wp_generate_attachment_metadata()
- Время выполнения:
- 1 раз — 0.000018 сек (очень быстро)
- 50000 раз — 0.14 сек (очень быстро)
- Проверено на: PHP 7.0.5, WP 4.5.2
Возвращаемое значение
Функция возвращает массив строк, где каждая строка — это название размера изображения.
Пример использования
Чтобы получить все доступные размеры изображений, используйте функцию следующим образом:
$sizes = get_intermediate_image_sizes();
print_r($sizes);
В результате вы получите что-то подобное:
Array
(
[0] => thumbnail
[1] => medium
[2] => medium_large
[3] => large
[4] => shop_thumbnail
[5] => shop_catalog
[6] => shop_single
[7] => post-thumbnail
)
Важно: Данный массив показывает только названия размеров. Чтобы узнать размеры (ширину и высоту) или обрезку, создайте свою функцию.
Решение проблем с размерами изображений
Если, например, для размера "Large" указаны нулевые значения (0) для высоты и ширины, этот размер фактически будет отключен, и миниатюра для него не будет создаваться. Однако функция get_intermediate_image_sizes() все равно покажет этот размер.
Чтобы получить информацию о всех зарегистрированных размерах изображений и избежать подобных проблем, воспользуйтесь функцией wp_get_registered_image_subsizes().
Пример получения данных о всех зарегистрированных размерах изображений
Начиная с версии WP 5.3, можно использовать функцию wp_get_registered_image_subsizes():
function get_image_sizes($unset_disabled = true) {
$sizes = array();
$wais = wp_get_additional_image_sizes();
foreach (get_intermediate_image_sizes() as $_size) {
if (in_array($_size, ['thumbnail', 'medium', 'medium_large', 'large'])) {
$sizes[$_size] = array(
'width' => get_option("{$_size}_size_w"),
'height' => get_option("{$_size}_size_h"),
'crop' => (bool) get_option("{$_size}_crop"),
);
} elseif (isset($wais[$_size])) {
$sizes[$_size] = array(
'width' => $wais[$_size]['width'],
'height' => $wais[$_size]['height'],
'crop' => $wais[$_size]['crop'],
);
}
// Проверяем, отключён ли размер с нулевыми шириной и высотой
if ($unset_disabled && ($sizes[$_size]['width'] == 0 && $sizes[$_size]['height'] == 0)) {
unset($sizes[$_size]);
}
}
return $sizes;
}
Когда вы вызываете эту функцию, вы получите информацию по всем размерам изображений:
print_r(get_image_sizes());
Получение данных о конкретном размере изображения
С помощью ранее созданной функции get_image_sizes() вы можете легко создать функции для получения данных о конкретных размерах изображений.
Пример функции для получения данных о конкретном размере
function get_image_size($size) {
$sizes = get_image_sizes(false);
return $sizes[$size] ?? false;
}
function get_image_size_width($size) {
if (!$size_data = get_image_size($size)) return false;
return $size_data['width'] ?? false;
}
function get_image_size_height($size) {
if (!$size_data = get_image_size($size)) return false;
return $size_data['height'] ?? false;
}
Теперь можно использовать эти функции для получения данных:
$medium_size = get_image_size('medium');
$medium_size_width = get_image_size_width('medium'); // вернёт 120
$medium_size_height = get_image_size_height('medium'); // вернёт 120
Изменения
- С версии: 3.0.0 — функция была введена.
Заключение
Функция get_intermediate_image_sizes() является полезным инструментом для работы с изображениями в WordPress. С ее помощью вы можете быстро получать информацию о различных размерах изображений, что помогает оптимизировать ваш сайт и улучшить его производительность.