add_image_size()
Реєструє новий розмір картинки (мініатюри).
Реєстрація означає, що WordPress, при завантаженні зображення, крім базових розмірів, буде створювати ще один файл – змінену копію оригіналу із зазначеними розмірами.
Викликати цю функцію можна будь-якої миті, бажано раніше, щоб була можливість відключити розмір пізніше. Так:
- З плагіна, це краще робити на хуку plugin_loaded із пріоритетом 0.
- З теми, викликати прямо в тілі файлу functions.php .
Щоб посту можна було задати картинку-мініатюру, потрібно активувати цю можливість функцією: add_theme_support( ‘post-thumbnails’ ) у файлі шаблону funсtions.php.
Використовуйте remove_image_size() , щоб видалити раніше створений розмір .
Щоб створювати мініатюри на льоту з будь-яким розміром, замість цієї функції використовуйте мій плагін Kama Thumbnail .
Зарезервовані назви розмірів
thumb, thumbnail, medium, large, post-thumbnail
Назви ” thumb ” та ” thumbnail ” – це аліаси (синоніми) і відносяться до однакових файлів.
Дивіться також опис функції image_downsize() .
Також ви можете встановити опції створюваної мініатюри через:
update_option( 'thumbnail_size_w', 160); update_option( 'thumbnail_size_h', 160); update_option( 'thumbnail_crop', 1);
При створенні своєї теми для каталогу тем WP назва нового розміру повинна містити ім’я теми, докладніше за посиланням . Наприклад:
add_image_size( 'mytheme-mini', 200, 200, true);
set_post_thumbnail_size()
Хуків немає.
Повертає
null
. Нічого не вертає.
Використання
add_image_size($name, $width, $height, $crop);
-
$name
(рядок) (обов’язковий) - Назва нового розміру картинок.
-
$width
(число) (обов’язковий) - Ширина мініатюри (у пікселях).
-
$height
(число) (обов’язковий) - Висота мініатюри (у пікселях).
-
$crop
(логічний) Як створювати мініатюру?
false
– масштабування: картинка буде змінена у розмірі з відповідної сторони. Мініатюра створюється за однією з відповідних сторін: вказаною шириною або висотою. Підсумкова картинка точно не співпадатиме вказаними розмірами.true
– кадрування: мініатюра створюється точно за вказаними розмірами. Підбирається найбільш підходяща сторона, картинка зменшується по ній, а у протилежної сторони зайва частина, яка не підходить по пропорціях, обрізається.array( координата_X, координата_Y )
– Вказівку позиції кадрування, тобто. якщо вказати масив[ 'right', 'top' ]
, то зображення буде кадровано з правого-верхнього кута.
crop
працює тільки для новостворених картинок. Якщо на сайті вже є картинки і лише потім додається розмір, воно оброблені не будуть.Типово: false
Приклади
#1 Додамо нові розміри мініатюр
Реєструємо нові розміри мініатюр, додавши такий код файл шаблону functions.php:
if ( function_exists( 'add_theme_support' ) ) { // розмір мініатюри посту за умовчанням add_theme_support( 'post-thumbnails'); set_post_thumbnail_size(150, 150); } if ( function_exists( 'add_image_size' ) ) { // 300 завширшки і без обмеження заввишки add_image_size ( 'category-thumb', 300, 9999); // Кадрування зображення add_image_size( 'homepage-thumb', 220, 180, true); }
#2 $crop параметр
Масштабування$crop = false
Цей рядок вкаже WP, що при завантаженні нового файлу потрібно створити його зменшену копію. В цьому випадку мініатюра буде підігнана під ширину або висоту, дивлячись яка зі сторін підходить більше, а протилежна сторона буде зменшена пропорційно і швидше за все не буде більше вказаного розміру. Наприклад, у нас оригінал картинки 2500х1800 пікселів ми робимо мініатюру 220х180 пікселів. Картинка буде зменшена до розмірів – 250х180 px, тобто. висота буде 180, як ми і вказали, проте ширина вийде вище вказаної 250, а не 220. У цьому випадку картинка не кадрується і зменшена копія зберігає пропорції повністю.
add_image_size( 'homepage-thumb', 220, 180, false);
Кадрування$crop = true
Якщо встановити четвертий параметр в true, мініатюра буде зменшена і обрізана точно під зазначені розміри. Наприклад, у нас оригінал картинки 2500х1800 пікселів ми робимо мініатюру 220х180 пікселів. Оригінал буде зменшено до висоти 180xp (тоді ширина його рівна 250px), а ширина буде обрізана по краях по 15px і в результаті отримаємо зменшену копію: 220х180 пікселів:
add_image_size( 'homepage-thumb', 220, 180, true);
Кадрування із зазначенням позицій$crop = [ x, y ]
З версії 3.9 виникла можливість вказувати позицію кадрування. Давайте додамо розмір мініатюри, яка буде розміром 220х220 пікселів та буде фрагментом від оригіналу, який буде взято з лівого верхнього кута (left, top):
add_image_size('custom-size', 220, 220, ['left', 'top']);
Х_позиція може бути: ‘ left ‘ ‘ center ‘ або ‘ right ‘.
Y_позиція може бути: ‘ top ‘, ‘ center ‘ або ‘ bottom ‘.
#3 Зменшення по потрібній стороні
Щоб зменшити картинку по одній із потрібних нам сторін, потрібно вказати протилежному боці велике значення. Наприклад, у нас є картинка 2500х1800, нам потрібно отримати мініатюру 500х1800, тоді вказуємо так:
add_image_size( 'homepage-thumb', 500, 9999);
#4 Використання нових розмірів
Ми зареєстрували 3, відмінні від базових, розміру: post-thumbnails
, category-thumb
, homepage-thumb
. Щоб тепер використовувати ці розміри (виводити картинки у шаблоні), можна використовувати такі функції:
Вибране зображення (featured image)
Щоб використовувати новий розмір при виведенні картинки встановленої як “Вибране зображення” посту, у файлі шаблону потрібно використовувати функцію the_post_thumbnail() :
if ( has_post_thumbnail() ) { the_post_thumbnail( 'category-thumb'); // category-thumb – назва розміру }
Новий розмір на вибір розмірів при вставці картинки (адмін-панель)
Щоб додати новий розмір у вибір розмірів при вставці картинки в пост, потрібно використовувати фільтр-хук image_size_names_choose
, в якому потрібно додати розмір і вказати для нього зрозумілу назву:
add_filter( 'image_size_names_choose', 'my_custom_sizes'); function my_custom_sizes( $sizes ) { return array_merge( $sizes, array( 'category-thumb' => 'Мій розмірник', ))); }
Для основних медіафайлів (PHP/Templates)
Також можна виводити картинки (за розмірами) безпосередньо з бібліотеки WordPress за ID зображення. Для цього використовуйте функцію wp_get_attachment_image() :
// Маю на увазі, що у вас у бібліотеці є картинка з ID 42... echo wp_get_attachment_image(42, 'category-thumb');
Якщо нам потрібно отримати тільки УРЛ картинки, а не готовий тег <img>, то використовуйте функцію wp_get_attachment_image_src() .
Плагіни
Regenerate Thumbnails – цей плагін дозволяє створити нові розміри для кожного завантаженого зображення. Корисний, коли ви змінили або додали нові розміри мініатюр (через Налаштування > Медіафайли) під час, коли в бібліотеці вже є завантажені зображення. Або коли ви змінили розміри “Вибраного зображення” посту.
Force Regenerate Thumbnails – видаляє раніше створені розміри та створює нові, на основі поточних установок.
AJAX thumbnail rebuild – дозволяє перестворити мініатюри. Корисний, якщо ви використовували функцію add_image_size() , коли у вас вже є завантажені зображення. (Це повільний плагін, але при цьому в ньому не буває помилок із нестачею виділеної пам’яті).
- Simple Image Sizes – дозволяє створювати нові розміри мініатюр прямо з панелі “Медіафайли”. Він також вміє перетворювати мініатюри. Він додає нові розміри на вибір для постів, так ви можете вставляти нові розміри в пости. Ви можете вибирати які з розмірів ви хотіли б перестворити і для яких типів постів це потрібно зробити.
–
Дуже вигідну SMM пропозицію можна отримати прямо зараз від сайту doctorsmm.com . На цьому сервісі Ви можете замовити будь-яку послугу просування в 9 і більше соціальних мережах, а саме: накрутку лайків, передплатників, переглядів та ін. ресурсів. Так Ви зможете швидко та безпечно розвинути свою сторінку та підняти її рейтинг у мережі. До того ж, на сайті діють значні оптові знижки.
нотатки
- Global. Масив. $_wp_additional_image_sizes Associative array of additional image sizes.
список змін
З версії 2.9.0 | Введено. |
Код add_image_size() add image size WP 6.0.2
function add_image_size( $name, $width = 0, $height = 0, $crop = false ) { global $_wp_additional_image_sizes; $_wp_additional_image_sizes[ $name ] = array( 'width' => absint( $width ), 'height' => absint( $height ), 'crop' => $crop, ); }