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="image_get_intermediate_size() – Отримує масив даних картинки-вкладення зазначеного розміру (thumbnail, medium)." width="'. $image['width'] .'" height="'. $image['height'] .'" />';
else
echo 'Малюнки немає';
}
get_image_link_if_exists('my_size');
список змін
| З версії 2.5.0 | Введено. |