Zmiana rozmiarów obrazków podczas aktywacji szablonu

Domyślne rozmiary obrazków czasami są bezużyteczne, ponieważ szablon posiada już zdefiniowane własne wielkości. Nie jest dobrym rozwiązaniem generowanie za każdym razem nowych rozmiarów, gdyż tracimy miejsce na naszym hostingu. Niektóre szablony mogą mieć ustawionych nawet kilka zakresów szerokości i wysokości obrazka, a wtedy proces wysyłania pliku trwa dłużej a miejsce na dysku kurczy się w szybkim tempie.

Rozmiary obrazków

W ustawieniach mediów mamy możliwość zmiany rozmiarów obrazków oraz czy dana miniaturka ma być kadrowana. W większości szablonach mamy zdefiniowane już własne rozmiary za pomocą funkcji add_image_size. W jednym szablonie naliczyłem, aż 6 rozmiarów, co z domyślnymi rozmiarami daje nam 9 dodatkowych plików, co daje nam około 500 kb zajętego miejsca.

Tworząc własny szablon możemy wykorzystać domyślne rozmiary zamiast tworzyć nowe. Wystarczy dodać do naszego szablonu poniższy kod, który po aktywacji szablonu ustawi na nowo rozmiary obrazków.

function myactivationfunction($oldname, $oldtheme=false) {
	update_option( 'thumbnail_size_w', 160 ); // miniatura szerokość
	update_option( 'thumbnail_size_h', 160 ); // miniatura wysokość
	update_option( 'thumbnail_crop', 1 ); // miniatura szerokość
	update_option( 'medium_size_w', 520 ); // medium szerokość
	update_option( 'medium_size_h', 245 ); // medium wysokość
	if(!get_option('medium_crop')) add_option('medium_crop', 1); else update_option('medium_crop', 1); // kadruj medium 
	update_option( 'large_size_w', 720 ); // large szerokość
	update_option( 'large_size_h', 340 ); // large wysokość
	if(!get_option('large_crop')) add_option('large_crop', 1); else update_option('large_crop', 1); // kadruj large 
}
add_action("after_switch_theme", "myactivationfunction", 10 , 2); 

Powyższa funkcja zmienia rozmiary obrazków oraz dodaje dla pozostałych opcję kadrowania. Od tej pory w szablonie możemy korzystać z domyślnych rozmiarów zamiast tworzyć kolejne. Jeżeli mieliśmy już obrazki, które wcześniej zostały wysłane na serwer – należy posłużyć się wtyczką Regenerate Thumbnails, która zmieni ich rozmiar.

Zauważcie również, że dla miniaturek medium jak i large została dodana opcja, która odpowiedzialna jest za przycięcie ich do zdefiniowanych rozmiarów. Oczywiście możemy tę opcję usunąć, bo domyślnie ona nie istnieje w WP.

Czekam na wasze komentarze. Może wg Was moje podejście jest zbyt przesadne? Mam nadzieję, że komuś się jednak spodoba moje rozwiązanie i je wdroży w swoim projekcie.

 

You may also like...