image_get_intermediate_size()
Отримує масив даних картинки-вкладення зазначеного розміру (thumbnail, medium…), якщо вона існує. Повертає false якщо зображення немає.
У $size вказується зареєстрований за допомогою add_image_size() розмір або вже існуючі базові розміри WordPress: thumb
, thumbnail
, medium
, large
, post-thumbnail
. Також $size може бути масивом: array(120, 50) – ширина і висота. Якщо цей розмір збігається з метаданими розміру існуючої картинки, вона буде використана. Якщо точного збігу з розмірами немає, то буде отримана найбільш відповідна, велика для розміру картинка. Якщо більшої за розміром картинки немає, функція поверне false.
У масиві даних УРЛ картинки буде переданий, якщо параметр $size вказаний рядок.
Якщо $size ви використовуєте масив, то дуже бажано задуматися про те, щоб зареєструвати потрібний розмір за допомогою add_image_size() , для того щоб виводилася зменшена копія картинки. Це набагато ефективніше, ніж знаходити найближчий більший розмір і зменшувати його до потрібного розміру в браузері.
wp_get_attachment_metadata()
image_downsize()
(дуже повільно) | 50000 разів – 1.51 сек
(швидко) |
PHP 7.1.5, WP 4.8.1
Хуки з функції
Повертає
Массив|false
. false, якщо немає розміру і масив даних картинки, якщо розмір є:
Якщо $size передано рядок і знайдено точний відповідний розмір: Array ( [file] => setting2-120x14.png [width] => 120 [height] => 14 [mime-type] => image/png [path] => 2014/07/setting2-120x14.png [url] => http://wp-kama.ru/wp-content/uploads/2014/07/setting2-120x14.png ) Коли не знайдено точний розмір, але знайдено найближче зображення більшого розміру: Array ( [file] => setting2-120x14.png [width] => 90 [height] => 10 )
Використання
$image = image_get_intermediate_size( $post_id, $size );
-
$post_id
(число) (обов’язковий) - ID вкладення-картинки
-
$size
(рядок/масив) -
Розмір картинки може бути рядком (зареєстрований розмір) або масивом ширина та висота:
array(120,50) .
За замовчуванням: ‘thumbnail’
Приклади
#1 Приклад використання
Отримаємо дані зображення вкладення 4831, середнього (medium) розміру:
$intermediate = image_get_intermediate_size(4831, 'medium'); print_r ($ intermediate); /* Поверне: Array ( [file] => setting2-120x14.png [width] => 120 [height] => 14 [mime-type] => image/png [path] => 2014/07/setting2-120x14.png [url] => http://wp-kama.ru/wp-content/uploads/2014/07/setting2-120x14.png ) */
#2 Вкажемо масив у параметр $size
Отримаємо дані зображення вкладення 4831, зазначеного розміру (тобто розмір може бути не зареєстрований):
$intermediate = image_get_intermediate_size(4831, array(90,90)); /* поверне: Array ( [file] => setting2-120x14.png [width] => 90 [height] => 10 ) */
#3 Виведемо картинку потрібного розміру, якщо вона є
У цьому прикладі ми виводимо картинку якщо вона є і напис “картинки немає”, якщо її немає. На відміну від image_downsize() , яка повертає УРЛ у будь-якому випадку:
function get_image_link_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="'. $image['url'] .'" alt="" width="'. $image['width'] .'" height="'. $image['height'] .'" />'; else echo 'Малюнки немає'; } get_image_link_if_exists('my_size');
список змін
З версії 2.5.0 | Введено. |