Jak na ořez obrázků ve WordPress galerii bez pluginů snadno a rychle

WordPress má oproti Drupalu tu výhodu, že web na něm rozběháte velice rychle. Řada nastavení je však už trochu komplikovaná. Nedávno jsem například řešil, jak docílit vlastního rozměru náhledů fotek v galerii, které by navíc byly oříznuté.

V takovém Drupalu je nastavení toho, jak se má fotka zobrazit, otázkou pár kliknutí. Nastavíte styl obrázku, který v sobě zahrnuje zmenšení a ořez, aby všechny zmenšeniny vypadaly stejně. Na druhou stranu v sobě Drupal nemá zabudovanou galerii, musíte si ji vytvořit například pomocí Views. To je mé oblíbené řešení.

WordPress fotogalerii zabudovanou má, ovšem zase nemá zrovna povedené nastavení velikostí obrázků. Výchozí nastavení má velikosti obrázků tři. Ty se pak objeví také v galerii. S tím, že jen nejmenší formát fotky na příslušný rozměr nejenom zmenší, ale i ořízne.

Ve výsledku pak jeho galerie na stránce může vypadat následovně:

Výchozí galerie ve WordPressu

Já jsem se s tím ovšem nechtěl spokojit. Snadné propojení galerie s FancyBoxem v momentě, kdy se fotka nalinkuje na mediální soubor se mi líbí a plně dostačuje. Nechtěl jsem tedy instalovat nějaký speciální nabubřelý plugin pro fotogalerie, který by navíc byl plný reklam, jak je ve WordPressu zvykem.

Mimochodem, jako odkojený drupalista dodnes nechápu, jak může někdo dávat klientům redakční systém, do kterého naháže pluginy zobrazující reklamu v administračním rozhraní. U WordPressu běžná věc. To by mělo být maximálně u webů pro osobní použití, které si sám naklikám.

Krok první: definice vlastního rozměru obrázku

Na cestě za vlastním rozměrem náhledů ve fotogalerii WordPressu je zapotřebí nejprve definovat tento vlastní rozměr. To je myslím docela známá věc, jak jí docílit. Pomiňme, že se to dělá poněkud nesmyslně v tématu vzhledu.

Do souboru functions.php stačí doplnit následující:

if ( function_exists( 'add_image_size' ) ){
    add_image_size( 'moje-velikost', 320, 200, true );
}

Funkcí add_image_size() přidáte nový rozměr obrázku, třetí parametr pak určuje, zda se mají po zmenšení přečuhující okraje obrázku oříznout (true) nebo ne (false). S tímto rozměrem pak můžete pracovat dále v šablonách.

Opět se musím vrátit k Drupalu. Ten umí definovat velikosti obrázků přímo v administraci. Bez nutnosti psát kód. A nejen to. Obrázek můžete zároveň se změnou rozměrů a oříznutím i otočit nebo přebarvit. A spolu s moduly i zdeformovat dalšími úpravami.

Krok druhý: vlastní rozměr obrázku v galerii

Jenže výše uvedené nestačí k tomu, aby se nová velikost objevila ve výběru rozměru náhledů při vkládání galerie do článku ve WordPressu. Pokud to stejně jako já potřebujete a nevíte, jak na to, musíte do souboru functions.php přidat ještě následující úpravu:

add_filter('image_size_names_choose', 'my_image_sizes');
function my_image_sizes($velikosti) {
  $pridane = array(
    "moje-velikost" => __( "Moje velikost")
  );
  $novevelikosti = array_merge($velikosti, $pridane);
  return $novevelikosti;
}

V kostce: přidáte nový filtr slyšící na výběr velikostí obrázků. Jako druhý parametr je název funkce, která tento seznam vrací. Tuto funkci si následně nadefinujete. Přidáte pole, ve kterém bude uveden strojový název výše definované velikosti obrázku. K němu název zobrazovaný v administraci. Sloučíte původní velikosti, které tato funkce dostává jako parametr s touto novou a výsledek vrátíte na výstupu funkce.

Jednoduchou úpravou jsme tedy přidali jako novou velikost obrázku, tak jsme zprovoznili její výběr v nastavení při vkládání galerie. Výsledek pak může vypadat podobně, jako na následujícím screenshotu z mého webu o cestování Výlety 360.

Upravená galerie ve WordPressu se stejnými velikostmi náhledů

Tagy

Buďme ve spojení, přihlaste se k newsletteru

Odesláním formuláře souhlasíte s podmínkami zpracováním osobních údajů. 
Více informací v Ochrana osobních údajů.

Autor článku: Jan Polzer

Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.

Komentáře k článku

návštěvník

Dobrý den, popravdě existuje ještě jednodušší řešení - a to nastavit "své" rozměry přímo "Velikosti náhledu" v Nastavení > Média. Tedy za předpokladu, že nejsou úplně nějaké atypické. WordPressu ta změna ze standardních 150x150px v administraci nijak nevadí. Nedávno jsem si na jednom webu nastavil 250x175, a vše je OK.

Profile picture for user Jan Polzer

No to sice ano, ale co když těch rozměrů na webu máte více a původní náhled chcete používat také? Navíc nechápu, proč WordPress nenabízí ořez u toho středního a velkého obrázku.

Přidat komentář

Odesláním komentáře souhlasíte s podmínkami Ochrany osobních údajů

reklama
Moje kniha o CMS Drupal

 

Kniha 333 tipů a triků pro Drupal 9


Více na KnihyPolzer.cz

Sledujte Maxiorla na Facebooku

Maxiorel na Facebooku

Hosting pro Drupal a WordPress

Hledáte český webhosting vhodný nejenom pro redakční systém Drupal? Tak vyzkoušejte Webhosting C4 za 1200 Kč na rok s doménou v ceně, 20 GB prostoru a automatické navyšováním o 2 GB každý rok. Podrobnosti zde.

@maxiorel na Twitteru

Maxiorel na Twitteru