Статьи

Использование Timthumb с пользовательскими URL-адресами для оптимизации сайта

В этой статье я расскажу о том, как получить лучший показатель скорости страницы, даже если вы используете TimThumb в качестве средства изменения размера миниатюр для своего сайта. В моем личном блоге я уже давно пользуюсь этим методом, и результат впечатляет. Давайте начнем учебник!

Первый! Старые версии timthumb, как известно, небезопасны … Так что, если у вас есть старая версия timthumb, пожалуйста, сначала загрузите последнюю версию из TimThumb Google Code . Откройте файлы и найдите строку 27

1
define (‘FILE_CACHE_DIRECTORY’, ‘./cache’);

и заменить его на

1
define (‘FILE_CACHE_DIRECTORY’, »);

Это делает установку более безопасной, но вы все равно можете использовать папку «кеш» или собственное имя. Хакеры и боты знают, что нужно искать эту папку кэша, которая в более старых версиях позволяла пользователям устанавливать разрешения для папок ниже безопасных уровней.

Обычно разработчик темы использует timthumb в своей папке темы; Это очевидно, чтобы помочь пользователям легко использовать функцию «из коробки», но в целях безопасности мы изменим расположение тимтхумб на новую папку или новый поддомен (я использую эту опцию в моем личном блоге). Я покажу вам оба метода:

Создайте новую папку «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. Структура файла будет такой, как показано ниже

  1. /СМИ
  2. /media/.htaccess
  3. / СМИ / переклассификатор /
  4. /media/resizer/thumb.php

Если вы включили папку кеша, вам нужно создать папку кеша в разделе «resizer».

Сначала вам нужно настроить свой поддомен, например, www3.your-domain.com.

После этого поместите в основную папку вашего поддоменов файл .htaccess с кодом, показанным ниже.

Затем добавьте подпапку «resizer», то есть: www3.your-domain.com/resizer/. Загрузите timthumb в эту папку и убедитесь, что вы назвали свой файл timthumb как thumb.php. Структура файла будет такой, как показано ниже

  1. /.htaccess
  2. / Переклассификатор /
  3. /resizer/thumb.php

Если вы включили папку кеша, вам нужно создать папку кеша в разделе «resizer».

После того, как вы закончили с шагом 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-адрес изображения]

  1. [image-height] — определить высоту миниатюры
  2. [image-width] — определить ширину миниатюры
  3. [image-url] — определить URL источника изображения, удалить http: // из URL, иначе генерация миниатюр не удастся

Моя предыдущая статья была посвящена управлению миниатюрами и изображениями постов 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, не стесняйтесь оставлять комментарии!