![uk](https://petrov.net.ua/wp-content/plugins/mp-google-translate/assets/img/uk.png)
![en](https://petrov.net.ua/wp-content/plugins/mp-google-translate/assets/img/en.png)
![de](https://petrov.net.ua/wp-content/plugins/mp-google-translate/assets/img/de.png)
Блог IT-шника
Блог IT-шника
Привіт:) У цьому пості детально покажу різні способи обрізання мініатюр WordPress.
Мініатюри (ескізи) можуть стати в нагоді в різних місцях сайту. Наприклад, список усіх публікацій на домашній сторінці блогу. Залежно від теми, ви також можете використовувати їх у змісті посту, списках категорій, тегів, результатів пошуку або навіть віджетів.
Сам WordPress, а також теми та плагіни, зазвичай створюють розміри зображень під свої потреби. Але ви також можете вказати власні додаткові розміри мініатюр, наприклад, для створення шаблону публікації, віджету або блоку схожих постів.
Коли задаються розміри мініатюр, можна вибрати спосіб обрізання, щоб вони вписувалися у певну частину сторінки. Можливо вам потрібні квадратні або дуже широкі, але вузькі мініатюри. А можливо, хочете, щоб картинки завжди відображалося повністю. Детально розберу, як це зробити.
Оскільки горизонтальні (альбомні) та вертикальні (портретні) фото не завжди обробляються однаково за допомогою однієї і тієї ж функції, у прикладі використовую обидва варіанти:
Тут відбувається пропорційна зміна розміру без обрізання, тобто вся область фото зберігається. Мініатюра буде створена за однією з відповідних сторін (зазначеною шириною/висотою). У результаті сторони картинки не точно співпадатимуть із зазначеними розмірами. Цей режим використовується у WordPress за замовчуванням під час завантаження фото через Медіабібліотеку.
Щоб задати розмір зображення у режимі м'якого обрізання, у файл functions.php додайте рядок
add_image_size( 'wordpress-thumbnail', 200, 200, false );
В результаті для горизонтального варіанту ви отримаєте:
Та вертикального:
У цьому випадку зображення строго обрізається згідно із заданими шириною і висотою. У результаті будуть вирізані всі інші частини картинки, які поміщаються у зазначені рамки. Якщо потрібно створити квадратні мініатюри із прямокутних зображень, зробіть ширину та висоту однаковими.
Є два способи задати жорстке обрізання.
add_image_size( 'wordpress-thumbnail', 200, 200, true );
Це виглядатиме так:
Також обрізання можна виконати із зазначенням позицій (X та Y).
до змісту ↑Жорстке та м'яке обрізання — найпоширеніші типи обрізання, які використовуються для мініатюр WordPress. За замовчуванням жорстке фокусується на середині зображення і обрізається однаково з кожного боку зображення в альбомній (горизонтальній) орієнтації або однаково зверху та знизу для портретної (вертикальної).
Але що, якщо потрібно зосередитись на іншій частині зображення? Тут на допомогу приходять режими кадрування за допомогою масиву. З їх допомогою ви вказуєте вісь X (ліворуч, по центру, праворуч) та вісь Y (зверху, по центру, знизу).
Картинка має бути розділена на 9 частин (наприклад, верхній лівий кут, нижній правий кут тощо). Але на практиці це працює не так. Через те, як ВордПрес робить обрізання і намагається заповнити хоча б одну вісь, не всі ці інструкції по осях x і y відносяться до всіх зображень. Тобто відповідні інструкції для горизонтального та вертикального зображень відрізняються.
На практиці замість 9 частин зображення ділиться всього на 3. Актуальність інструкцій по осях x або y залежить від того, в альбомній або книжковій орієнтації зображення.
Обрізання за допомогою масиву недоступна через звичайну панель керування WordPress. Задіяти її можна через функцію add_image_size()
.
Фокусування жорсткого обрізання у лівому верхньому кутку:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'left', 'top' ) );
Для горизонтальної орієнтації:
Вертикальний варіант:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'center', 'top' ) );
В результаті для альбомного варіанту:
Портретний:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'right', 'top' ) );
Альбомне зображення:
Портретне:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'left', 'center' ) );
Для горизонтального:
Вертикального:
Правило працює для центру по вертикалі та горизонталі.
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'center', 'center' ) );
Для альбомної:
Портретна:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'right', 'center' ) );
Для альбомного зображення це займає правий бік:
У портретному вибирається центр, що збігається з жорстким обрізанням за замовчуванням:
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'left', 'bottom' ) );
add_image_size( 'wordpress-thumbnail', 200, 200, array( 'center', 'bottom' ) );
Для альбомного варіанту обрізання фокусується у центрі, що збігається з жорстким кадруванням за замовчуванням:
Для портретного:
add_image_size( 'wordpress-thumbnail', 209, 209, array( 'right', 'bottom' ) );
По горизонталі:
По вертикалі:
Якщо ви застосуєте декілька варіантів обрізання мініатюр з однаковими розмірами, то виникне проблема. Назви файлів для нових мініатюр використовують їх розміри, щоб відрізнити від інших розмірів того самого зображення. Але в назвах не вказується тип обрізання. Тому якщо спробуєте додати мініатюру 200x200 з жорстким обрізанням і ще одну з таким самим розміром 200x200 з обрізанням знизу праворуч, то в результаті у вас вийде тільки одна — та, яка буде останньою у списку. Це тому, що ім'я файлу для обох стане приблизно таким:
/files/2021/11/photo-200x200.jpg