У попередньому пості я постарався дати докладний посібник як отримати перше зображення з поста в WordPress. яке в подальшому можна використовувати в якості анонсу для статті, але цей спосіб не дозволяє «гнучко» масштабувати зображення, масштабування можливо тільки при зміні значень атрибутів висоти і ширини в тезі і якщо ви захочете зробити прев'ю квадратним, наприклад 200 x 200px, зображення буде спотворено (передбачається, що оригінал зображення - прямокутник), отже, в більшості випадків вам доведеться масштабувати зображення по одній зі сторін.
У цій статті розглянемо скрипт, який дозволить змінити розмір зображення, збереже його пропорції, при необхідності виріже і збереже всі наші превью в окремій папці (кеш). До того ж, все нижче наведене потребують мінімальних зусиль і прекрасно працює на будь-якому движку, точніше скрипт не залежить від використовуваної вами системи управління, так як він є самостійним.
Отже, для реалізації даного завдання ми скористаємося чудовим скриптом TimThumb PHP. Даний скрипт дозволяє автоматично змінити розмір зображення з заданими настройками і зберігати превью в кеші. Для роботи скрипта потрібно бібліотека GD встановлена на вашому хостингу і PHP версії не нижче 4.3.
Для початку необхідно завантажити скрипт, розпакувати і розмістити в будь-якій папці з вашим сайтом, припустимо, що ви використовуєте WordPress. Додайте скрипт timthumb.php в папці з вашою темою (скрипт може знаходиться в будь-якій папці або поза нею, головне правильно вказати шлях до нього).
Після першого запуску скрипт TimThumb PHP автоматично створить папку / cache / с правами доступу 777, якщо на вашому хостингу є які-небудь обмеження, то створіть папку / cache / в тій же папці, де розташовується сам скрипт і встановіть на неї права 777.
Залишилося застосувати скрипт до зображення, розмір якого необхідно змінити, ось приклад як це робиться:
Основні параметри використовуються в сценарії:
- w: width - ширина превью;
- h: height - висота превью;
- zc: zoom crop (0 or 1) - цей параметр залишився загадкою.
- q: quality (default is 75 and max is 100) - якість превью.
Для того щоб прискорити кешування, додайте наступні правила в файл .htaccess:
Тепер перейдемо від теорії до практики, скористаємося цим скриптом на движку WordPress для створення мініатюр розміром 200 x 200px, припустимо, що ви ознайомилися з матеріалом попередньої статті (див. Посилання, яку я дав на початку топіка).
Ось так виглядає код, за допомогою якого ми «відловлювали» перше зображення в WordPress:
змінимо його наступним чином:
Таким чином, нам не потрібно створювати мініатюри вручну, якщо ви захочете відновити дизайн сайту і вам будуть потрібні мініатюри іншого розміру, то досить буде замінити параметри w = 200h = 200 в рядку вище і очистити папку з кешем, щоб мініатюри створилися заново (пам'ятаєте, що спеціальної папки для мініатюр не існує, тобто всі вони зберігаються в папці / cache /.
Деякі важливі параметри, які можна змінити безпосередньо в файлі timthumb.php і задати налаштування за замовчуванням:
Якщо щось раптом не працює:
- перевірте, щоб були вказані правильно абсолютні шляхи до скрипта і зображення в вираженні;
- можливо на папку, в якій знаходиться скрипт timthumb.php, не дані права 777;
- після зміни будь-яких параметрів мініатюри (висоти, ширини, якості.) не забувайте очистити папку / cache /;