Nota: Esta guía le mostrará cómo editar archivos Core WordPress, realmente no lo recomiendo. Úsalo solo si sabes lo que estás haciendo. La guía se escribió hace mucho tiempo cuando no podía definir ubicaciones de recorte personalizadas, ahora puede establecer su ubicación de recorte cuando usa la función add_image_size, por lo que esta guía ya no es aplicable.
He estado usando mucho la nueva función de miniaturas de publicaciones de WordPress últimamente en el desarrollo de temas. Me alejé del método más lento, menos eficiente y amigable con el SEO de usar el script TimThumb para cambiar el tamaño de las imágenes en sitios con tecnología de WordPress.
Y si bien es una gran función para tener incorporada en WordPress, tiene sus «defectos», como el hecho de que no hay ningún parámetro para definir la ubicación/posición de recorte de la imagen cuando se cambia el tamaño.
Ubicación de recorte
El otro día, mientras trabajaba en mi sitio, noté que cuando se recortaban las miniaturas del tema de WordPress, se recortaba toda la mitad superior, lo que no le daba a la gente una buena idea de cómo se vería realmente el tema.
A continuación, se muestra una imagen divertida que encontré que muestra otra razón por la que es posible que desee elegir diferentes ubicaciones de recorte para sus imágenes en lugar de usar siempre el recorte «central» predeterminado.
Cambiar el recorte central predeterminado para las miniaturas
Desafortunadamente, para cambiar la ubicación de recorte de las miniaturas, tendrá que ensuciarse un poco las manos con los archivos Core WordPress. Simplemente siga los pasos a continuación para cambiar la ubicación de recorte de sus miniaturas (esto no lo cambiará para TODAS las miniaturas definidas en sus funciones.php y configuración de medios).
- Paso 1: Vaya a su carpeta wp-includes
- Paso 2: Busque y abra el archivo media.php
- Paso 3: Localice el siguiente código (alrededor de la línea 3.61 en WordPress 3.1.1)
$s_x = floor( ($orig_w - $crop_w) / 2 );
$s_y = floor( ($orig_h - $crop_h) / 2 );
- Etapa 4: Edite el código para satisfacer sus necesidades (vea la explicación a continuación)
Cambiar los valores de recorte
Esas dos líneas que encontraste son las encargadas de recortar tus miniaturas. El valor predeterminado es tomar el ancho y el alto originales y recortarlos por igual hacia el centro. Sin embargo, puede cambiarlo fácilmente para recortar hacia arriba, a la izquierda, arriba a la izquierda, etc.
Recortar desde arriba
Para recortar desde la parte superior, simplemente necesita hacer que el valor y sea igual a 0, así que cambie la segunda línea de código para que se vea así:
$s_y = 0; // floor( ($orig_h - $crop_h) / 2 );
Recortar desde el centro a la izquierda
Para recortar desde la izquierda, debe hacer que el valor x sea igual a 0, así que cambie la primera línea de código para que se vea así:
$s_x = 0; // floor( ($orig_w - $crop_w) / 2 );
Recortar desde la parte superior izquierda
Combine las dos últimas muestras para recortar una imagen desde la parte superior izquierda.
$s_y = 0; // floor( ($orig_h - $crop_h) / 2 );
$s_x = 0; // floor( ($orig_w - $crop_w) / 2 );
Regenerar miniaturas de WordPress
No olvide que si cambia la ubicación de recorte de sus miniaturas, tendrá que volver a recortarlas todas. Puede hacerlo fácilmente con cualquiera de los siguientes dos complementos: Reconstrucción de miniaturas de AJAX o Regenerar miniaturas.