В этой статье я расскажу о том, как получить лучший показатель скорости страницы, даже если вы используете TimThumb в качестве средства изменения размера миниатюр для своего сайта. В моем личном блоге я уже давно пользуюсь этим методом, и результат впечатляет. Давайте начнем учебник!
Шаг 1 Подготовка TimThumb
Первый! Старые версии timthumb, как известно, небезопасны … Так что, если у вас есть старая версия timthumb, пожалуйста, сначала загрузите последнюю версию из TimThumb Google Code . Откройте файлы и найдите строку 27
1
|
define (‘FILE_CACHE_DIRECTORY’, ‘./cache’);
|
и заменить его на
1
|
define (‘FILE_CACHE_DIRECTORY’, »);
|
Это делает установку более безопасной, но вы все равно можете использовать папку «кеш» или собственное имя. Хакеры и боты знают, что нужно искать эту папку кэша, которая в более старых версиях позволяла пользователям устанавливать разрешения для папок ниже безопасных уровней.
Шаг 2 Настройка нового местоположения для TimThumb
Обычно разработчик темы использует timthumb в своей папке темы; Это очевидно, чтобы помочь пользователям легко использовать функцию «из коробки», но в целях безопасности мы изменим расположение тимтхумб на новую папку или новый поддомен (я использую эту опцию в моем личном блоге). Я покажу вам оба метода:
Шаг 2.1. Использование подпапки
Создайте новую папку «media» на главном домене, а именно: yourdomain.com/media
После этого поместите в папку «media» файл .htaccess с кодом, показанным ниже.
1
2
3
4
5
|
<IfModule mod_rewrite.c >
RewriteEngine On
RewriteBase /media/
RewriteRule ^resizer/(.*)x(.*)/r/(.*) resizer/thumb.php?src=http://$3&h=$2&w=$1&zc=1
</IfModule>
|
Затем добавьте подпапку в разделе «media» с именем «resizer», т.е. your-domain.com/media/resizer/. Загрузите timthumb в эту папку и убедитесь, что вы назвали свой файл timthumb как thumb.php. Структура файла будет такой, как показано ниже
- /СМИ
- /media/.htaccess
- / СМИ / переклассификатор /
- /media/resizer/thumb.php
Если вы включили папку кеша, вам нужно создать папку кеша в разделе «resizer».
Шаг 2.2 Использование субдомена
Сначала вам нужно настроить свой поддомен, например, www3.your-domain.com.
После этого поместите в основную папку вашего поддоменов файл .htaccess с кодом, показанным ниже.
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^ resizer /(.*) x (. *) / R /(.*) resizer / thumb.php? Src = http: // $ 3 & h = $ 2 & w = $ 1 & zc = 1 </ IfModule>
Затем добавьте подпапку «resizer», то есть: www3.your-domain.com/resizer/. Загрузите timthumb в эту папку и убедитесь, что вы назвали свой файл timthumb как thumb.php. Структура файла будет такой, как показано ниже
- /.htaccess
- / Переклассификатор /
- /resizer/thumb.php
Если вы включили папку кеша, вам нужно создать папку кеша в разделе «resizer».
Шаг 3 Использование
После того, как вы закончили с шагом 2, теперь вы готовы использовать тимтумб с пользовательским URL. Формат, который вы можете использовать для нового пользовательского URL, показан ниже:
Subfolder
http://your-domain.com/media/resizer/250x150/r/your-image-url.jpg
Subdomain
http://www3.your-domain.com/resizer/250x150/r/your-image-url.jpg
Формат использования URL-адреса: http://www3.your-domain.com/resizer/ [ширина изображения] x [высота изображения] / r / [URL-адрес изображения]
- [image-height] — определить высоту миниатюры
- [image-width] — определить ширину миниатюры
- [image-url] — определить URL источника изображения, удалить http: // из URL, иначе генерация миниатюр не удастся
Шаг 4 Использование с Automagic Thumbnail / Image Management
Моя предыдущая статья была посвящена управлению миниатюрами и изображениями постов Automagic. Если вы хотите использовать эту функцию пользовательского URL вместе с управлением миниатюрами постов, пожалуйста, следуйте инструкциям ниже, там есть некоторые изменения, чтобы убедиться, что все работает правильно.
Сначала вам нужно добавить дополнительную функцию в ваш файл functions.php.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
function remove_http($url = »)
{
if ($url == ‘http://’ OR $url == ‘https://’){
return $url;
}
$matches = substr($url, 0, 7);
if ($matches==’http://’){
$url = substr($url, 7);
}else{
$matches = substr($url, 0, 8);
if ($matches==’https://’)
$url = substr($url, 8);
}
return $url;
}
|
После этого посмотрите в функцию get_attachment_picture (), перед закрывающей скобкой вы увидите код, как показано ниже:
1
|
echo $related_thumbnail;
|
Измените код на
1
|
echo remove_http($related_thumbnail);
|
После этого вы можете использовать пользовательский URL вместе с функцией управления миниатюрами / изображениями. Пример использования:
1
|
echo ‘<img src=»http://www3.eizil.com/resizer/440×185/r/’.get_attachment_picture();'» width=»440px» height=»185px»/>’;
|
Вывод
К настоящему времени вы сможете использовать эту функцию в любой из ваших тем, если у вас есть какие-либо дополнительные предложения или вопросы, касающиеся пользовательского URL для timthumb, не стесняйтесь оставлять комментарии!