Uso de Timthumb con URL personalizadas para la optimización del sitio
() translation by (you can also view the original English article)
En este artículo, compartiré cómo obtener una mejor puntuación en la velocidad de la página incluso cuando esté utilizando TimThumb como su redimensionador de miniaturas para su sitio. En mi blog personal he estado usando este método durante bastante tiempo y el resultado es bastante impresionante. ¡Comencemos el tutorial!
Paso 1 preparación de TimThumb
¡Primero! Las versiones anteriores de timthumb son notoriamente inseguras... Entonces, si tiene una versión anterior de timthumb, primero descargue la última versión de TimThumb Google Code. Abra los archivos y busque la línea 27
1 |
define ('FILE_CACHE_DIRECTORY', './cache'); |
y reemplazarlo con
1 |
define ('FILE_CACHE_DIRECTORY', ''); |
Esto lo convierte en una configuración más segura, pero aún puede usar la carpeta 'caché' o su propio nombre definido. Los Hackers y los bots saben que deben buscar esa carpeta de caché, que en versiones anteriores haría que los usuarios establecieran los permisos de la carpeta en niveles más bajos que los seguros.
Paso 2 Configurar una nueva ubicación para TimThumb
Normalmente, un desarrollador de temas utilizará timthumb dentro de su carpeta de temas; obviamente, esto es para ayudar a los usuarios a usar fácilmente la función lista para usar, pero en aras de la seguridad cambiaremos la ubicación de timthumb a una nueva carpeta o un nuevo subdominio (uso esta opción en mi blog personal). Te mostraré ambos métodos:
Paso 2.1 Uso de una subcarpeta
Cree una nueva carpeta "medios" en su dominio principal, es decir: tudominio.com/media
Después de eso, coloque dentro de la carpeta "media" un archivo .htaccess con el código que se muestra a continuación.
1 |
<IfModule mod_rewrite.c > |
2 |
RewriteEngine On |
3 |
RewriteBase /media/ |
4 |
RewriteRule ^resizer/(.*)x(.*)/r/(.*) resizer/thumb.php?src=https://$3&h=$2&w=$1&zc=1 |
5 |
</IfModule>
|
A continuación, agregue una subcarpeta debajo de "medios" llamada "resizer", es decir: su-dominio.com/media/resizer/. Sube el timthumb a esta carpeta y asegúrate de nombrar tu archivo timthumb como thumb.php. La estructura del archivo será como se muestra a continuación
- /media
- /media/.htaccess
- /media/resizer/
- /media/resizer/thumb.php
Si habilita la carpeta de caché, debe crear la carpeta de caché en "resizer".
Paso 2.2 Usando un subdominio
Primero debe configurar su subdominio, por ejemplo www3.your-domain.com.
Después de eso, coloque dentro de la carpeta principal de su subdominio un archivo .htaccess con el código que se muestra a continuación.
1 |
<IfModule mod_rewrite.c > |
2 |
RewriteEngine On |
3 |
RewriteBase / |
4 |
RewriteRule ^resizer/(.*)x(.*)/r/(.*) resizer/thumb.php?src=http://$3&h=$2&w=$1&zc=1 |
5 |
</IfModule> |
A continuación, agregue una subcarpeta "resizer", es decir: www3.your-domain.com/resizer/. Sube el timthumb a esta carpeta y asegúrate de nombrar tu archivo timthumb como thumb.php. La estructura del archivo será como se muestra a continuación
- /.htaccess
- /resizer/
- /resizer/thumb.php
Si habilita la carpeta de caché, debe crear la carpeta de caché en "resizer".
Paso 3 Uso
Una vez que haya terminado con el paso 2, ahora está listo para usar timthumb con una URL personalizada. El formato que puede utilizar para la nueva URL personalizada se muestra a continuación:
Subcarpeta
http://your-domain.com/media/resizer/250x150/r/your-image-url.jpg
Subdominio
http://www3.your-domain.com/resizer/250x150/r/your-image-url.jpg
El formato que se utiliza para la URL es http://www3.your-domain.com/resizer/[image-width]x[image-height]/r/[image-url]
- [image-height]: define la altura de la miniatura
- [image-width]: define el ancho de la miniatura
- [image-url]: defina la URL de la fuente de la imagen, elimine http: // de la URL o, de lo contrario, fallará la generación de la miniatura.
Paso 4 Uso con gestión Automática de imágenes / miniaturas
Mi artículo anterior trataba sobre la gestión de miniaturas / imágenes de publicaciones de Automatica, si desea utilizar esta función de URL personalizada junto con la gestión de miniaturas de publicaciones, siga los pasos a continuación, hay algunas ediciones para asegurarse de que todo funcione correctamente.
Primero necesita agregar una función adicional a su archivo functions.php.
1 |
function remove_http($url = '') |
2 |
{
|
3 |
if ($url == 'http://' OR $url == 'https://'){ |
4 |
return $url; |
5 |
}
|
6 |
$matches = substr($url, 0, 7); |
7 |
if ($matches=='http://'){ |
8 |
$url = substr($url, 7); |
9 |
}else{ |
10 |
$matches = substr($url, 0, 8); |
11 |
if ($matches=='https://') |
12 |
$url = substr($url, 8); |
13 |
}
|
14 |
return $url; |
15 |
}
|
Después de eso, mire en la función get_attachment_picture (), antes del corchete de cierre, verá el código como se muestra a continuación:
1 |
echo $related_thumbnail; |
Cambia el código a
1 |
echo remove_http($related_thumbnail); |
Después de eso, puede usar la URL personalizada junto con la función de administración de imágenes / miniaturas de publicación. Ejemplo de uso:
1 |
echo '<img src="http://www3.eizil.com/resizer/440x185/r/'.get_attachment_picture();'" width="440px" height="185px"/>'; |
Conclusión
A estas alturas ya debería poder usar esta función en cualquiera de sus temas, si tiene alguna sugerencia o pregunta adicional con respecto a la URL personalizada para timthumb, ¡no dude en dejar un comentario!