Decuparea miniaturilor cu add_image_size
Vreau ca miniaturile de pe o anumită pagină să fie exact 300px
× 100px
. În prezent, imaginile se micșorează până ating limita de 300 pixeli sau 100 pixeli. Cum pot face ca imaginea să fie decupată exact la 300 × 100 (preferabil fără distorsiunea imaginii).
// functions.php:
if ( function_exists( 'add_image_size' ) ) add_theme_support( 'post-thumbnails' );
if ( function_exists( 'add_image_size' ) ) {
add_image_size( 'post-thumb', 620, 207, true );
add_image_size( 'home-thumb', 220, 180, true );
add_image_size( 'index-thumb', 300, 100, true );
}
// index.php:
if ( has_post_thumbnail()) the_post_thumbnail('index-thumb');

Consultați intrarea din Codex pentru add_image_size()
:
<?php add_image_size( $name, $width, $height, $crop ); ?>
Parametrul $crop
este cheia:
(boolean) (opțional) Decupează imaginea sau nu. False - Mod de decupare proporțională ușoară; True - Mod de decupare dură.
Implicit: false
Adică:
- False (implicit): redimensionare în cutie - (redimensionează imaginea în funcție de dimensiunea restrictivă)
- True: decupare dură - decupează imaginea exact la dimensiunile specificate
Astfel, codul tău ar trebui să funcționeze:
// Adaugă suport pentru temă
add_theme_support( 'post-thumbnails' );
// Înregistrează dimensiuni personalizate pentru imagini
add_image_size( 'post-thumb', 620, 207, true );
add_image_size( 'home-thumb', 220, 180, true );
add_image_size( 'index-thumb', 300, 100, true );
Dacă observi că imaginile tale nu sunt afișate corespunzător, sunt câteva lucruri de verificat:
- Pentru imaginile adăugate înainte de implementarea acestor dimensiuni personalizate, va trebui să regeneriți thumbnail-urile pentru acele imagini
- Dimensiunile imaginilor nu vor fi generate pentru imagini care nu sunt cel puțin la fel de mari ca dimensiunile specificate ale unei anumite dimensiuni de imagine. Prin urmare, asigură-te că imaginile tale sunt cel puțin la fel de mari ca cea mai mare dimensiune specificată pentru decuparea dură. (Imaginile redimensionate în cutie nu sunt la fel de restricționate și trebuie să fie cel puțin la fel de mari ca cea mai mică dimensiune a unei anumite dimensiuni de imagine.)

Uită-te la acest plugin
- creează dimensiuni nelimitate pentru imagini (tăiate și netăiate)
- adaugă dimensiuni în câmpul de selectare a fișierelor media
- adaugă filtre CSS și animații
- poate gestiona filigrane

Parametrul true de fapt taie imaginea, dacă îl setezi la false imaginea nu va fi tăiată, ci va fi redimensionată.

ai verificat dacă imaginile tale sunt într-adevăr mai mari decât dimensiunile pe care le-ai definit ca thumbnail-uri? și ai încercat să elimini condițiile "if"??

Am încercat cu imagini mai mari. Același rezultat. Dacă elimin clauzele if, primesc o eroare.
