Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🔄 Jak regenerować miniatury w WooCommerce (5 kroków)

🔄 Jak regenerować miniatury w WooCommerce (5 kroków)

Zmienili Państwo motyw WooCommerce i zdjęcia produktów się rozjechały? Znajoma sytuacja. Po zmianie szablonu stare miniatury pozostają przycięte do rozmiarów poprzedniego motywu, a nowe wymagają zupełnie innych proporcji. W efekcie: gdzieś obcięcie, gdzieś rozciągnięcie, gdzieś puste miejsce zamiast wybranego obrazu.

Ręczne poprawianie każdego produktu to droga donikąd, jeśli w katalogu są setki pozycji. Na szczęście WordPress oferuje trzy działające sposoby na automatyczne ponowne utworzenie miniatur: wtyczkę, wbudowany mechanizm WooCommerce oraz WP-CLI. Każdy do swojej sytuacji.

Omówimy wszystkie pięć kroków, od najprostszego do zaawansowanego.

💡 Szybki przegląd:

  • Proszę zainstalować bezpłatną wtyczkę Regenerate Thumbnails z repozytorium WordPress.org, rozwiązuje ona zdecydowaną większość zadań związanych z regeneracją.
  • Proszę uruchomić pełną regenerację przez Narzędzia → Regenerate Thumbnails, wtyczka przetworzy wszystkie obrazy w jednym przebiegu.
  • Dla pojedynczego obrazu proszę użyć regeneracji z biblioteki mediów, szybko i bez masowego przetwarzania.
  • Jeśli mają Państwo świeżą wersję WooCommerce (3.3+), proszę włączyć wbudowaną regenerację w tle, uruchamia się ona automatycznie przy zmianie rozmiarów.
  • Dla dużych sklepów z dostępem do shella proszę użyć WP-CLI wp media regenerate, szybciej niż wtyczka i bez obciążania HTTP.

Krok 1: proszę zainstalować wtyczkę Regenerate Thumbnails

To bezpłatna wtyczka z milionem aktywnych instalacji na WordPress.org, wspierana przez zespół Automattic. Robi dokładnie to, co obiecuje w nazwie, bez zbędnego interfejsu i ustawień.

Proszę przejść do Wtyczki → Dodaj nową, wpisać w wyszukiwarkę „Regenerate Thumbnails", kliknąć Zainstaluj, a następnie Włącz. Wtyczka nie wymaga konfiguracji, po aktywacji pozycja Narzędzia → Regenerate Thumbnails od razu pojawia się w panelu administracyjnym.

Proszę zwrócić uwagę: wtyczka pracuje na oryginalnych przesłanych plikach. Nie kompresuje ponownie plików źródłowych, lecz tworzy nowe miniatury zgodnie z bieżącymi rozmiarami zdefiniowanymi w ustawieniach motywu i Ustawienia → Media. Stare miniatury są przy tym opcjonalnie usuwane (zaznaczenie „Usuń stare, nieużywane miniatury").

Krok 2: proszę uruchomić pełną regenerację wszystkich miniatur

Proszę otworzyć Narzędzia → Regenerate Thumbnails. Interfejs jest minimalistyczny: jeden przycisk i trzy opcje.

Interfejs pełnej regeneracji miniatur we wtyczce

Przed uruchomieniem proszę upewnić się, że wybrano opcję Pomiń regenerowanie istniejących miniatur o prawidłowych rozmiarach, zaoszczędzi to czas: wtyczka pominie miniatury, które już pasują rozmiarami.

Proszę kliknąć Regeneruj wszystkie miniatury. Wtyczka zacznie kolejno przetwarzać każdy obraz w bibliotece mediów. Dla stu obrazów proces trwa 2-3 minuty. Dla kilku tysięcy, do 15-20 minut.

Proszę nie zamykać karty przeglądarki podczas trwania regeneracji. Jeśli strona odświeży się sama, nic nie szkodzi: już przetworzone obrazy pozostaną przetworzone, wtyczka po prostu będzie kontynuować od miejsca, w którym przerwała.

Po zakończeniu zobaczą Państwo podsumowanie, ile miniatur przetworzono pomyślnie, a ile z błędem. Błędy zazwyczaj są związane z uszkodzonymi plikami (zepsuty JPEG lub niestandardowy format), są one widoczne w logu.

Wynik jest nieodwracalny. Nie można przywrócić poprzednich wersji przetworzonych miniatur, dlatego przed masową regeneracją proszę wykonać kopię zapasową witryny.

Krok 3: proszę odtworzyć jedno konkretne zdjęcie

Masowa regeneracja nie zawsze jest potrzebna. Jeśli wymienili Państwo jedną kartę produktu i chcą przetworzyć tylko jej miniatury, wtyczka pozwala zrobić to punktowo.

Proszę wejść w Media → Biblioteka, przełączyć się w tryb listy (Widok listy). Obok każdego obrazu w wierszu pojawi się odnośnik Regeneruj miniatury.

Regeneracja miniatur pojedynczo przez bibliotekę mediów

Proszę na niego kliknąć, a wtyczka przetworzy miniatury tylko dla tego pliku. Czas przetwarzania jednego obrazu to 1-2 sekundy.

Ta sama metoda działa dla regeneracji wsadowej: proszę zaznaczyć potrzebne obrazy, wybrać z rozwijanego menu akcji masowych Regeneruj miniatury i kliknąć Zastosuj. Wygodne, gdy po poprawkach dotyczy to kilkudziesięciu obrazów, a nie całego katalogu.

Nawiasem mówiąc, to samo jest dostępne na stronie edycji pojedynczego załącznika: proszę kliknąć obraz w bibliotece mediów, w panelu bocznym pojawi się przycisk regeneracji.

Krok 4: proszę włączyć wbudowaną regenerację WooCommerce

Od wersji WooCommerce 3.3 w jądrze pojawiła się regeneracja miniatur w tle. Uruchamia się automatycznie w dwóch przypadkach: gdy zmieniają Państwo rozmiary obrazów przez konfigurator i publikują je, lub gdy przełączają motyw.

Mechanizm działa tak: WooCommerce wykrywa rozbieżność między bieżącymi rozmiarami miniatur a zdefiniowanymi, ustawia zadanie w kolejce w tle i stopniowo przetwarza wszystko, co potrzebne. W konfiguratorze dostępny jest przy tym podgląd na żywo, zmiany widać od razu, jeszcze przed publikacją.

Sprawdzić, czy kolejka jest uruchomiona, można w WooCommerce → Status → Logi: proszę wybrać log wc-background-regeneration. Jeśli proces jest aktywny, w panelu administracyjnym pojawi się powiadomienie z przyciskiem anulowania.

Gdy wbudowany mechanizm nie daje rady (na przykład witryna jest za BasicAuth, kolejka w tle nie może wykonać żądań HTTP do samej siebie), wyłącza się go filtrem:

1add_filter( 'woocommerce_background_image_regeneration', '__return_false' );

Następnie regenerację uruchamia się ręcznie, przez wtyczkę lub WP-CLI.

Dla większości sklepów na świeżych wersjach WooCommerce ten wbudowany mechanizm jest wystarczający. Wtyczka Regenerate Thumbnails jest potrzebna, gdy chcą Państwo kontrolować proces ręcznie lub wyczyścić stare, nieużywane miniatury.

Krok 5: proszę regenerować przez WP-CLI (dla dużych sklepów)

Wiersz poleceń to najszybszy sposób, ponieważ nie ma narzutu na żądania HTTP i interfejs przeglądarki. Jest odpowiedni, jeśli mają Państwo dostęp przez SSH i zainstalowane WP-CLI.

Podstawowe polecenie do regeneracji wszystkich miniatur:

1wp media regenerate --yes

Flaga --yes pomija potwierdzenie. Bez niej WP-CLI poprosi o potwierdzenie dla każdego załącznika, co przy tysiącach obrazów jest bezcelowe.

Dla pojedynczego załącznika proszę podać jego ID:

1wp media regenerate 123

Przydatna opcja --image_size określa konkretny rozmiar do regeneracji. Na przykład, jeśli motyw dodał nowy rozmiar shop_catalog, a reszty nie trzeba ruszać:

1wp media regenerate --image_size=shop_catalog

Dla bardzo dużych sklepów (dziesiątki tysięcy produktów) proszę uruchomić polecenie wewnątrz screen lub tmux, aby proces nie został przerwany przy rozłączeniu sesji SSH. I koniecznie proszę zrobić kopię zapasową przed uruchomieniem, WP-CLI, podobnie jak wtyczka, nieodwracalnie nadpisuje miniatury.

⁉️🤔 Często zadawane pytania

Czy trzeba regenerować miniatury po aktualizacji WooCommerce?

Aktualizacja WooCommerce sama w sobie nie zmienia rozmiarów obrazów, regeneracja nie jest potrzebna. Ale jeśli aktualizacja obejmuje zresetowanie ustawień konfiguratora lub jednocześnie zaktualizowali Państwo motyw, proszę sprawdzić rozmiary miniatur i w razie rozbieżności uruchomić regenerację.

Co zrobić, jeśli regeneracja się zawiesiła?

Proszę odświeżyć stronę Narzędzia → Regenerate Thumbnails. Wtyczka będzie kontynuować od tego samego miejsca, przetwarza obrazy pojedynczo i nie traci postępu. Jeśli zawieszanie powtarza się na tym samym pliku, prawdopodobnie obraz źródłowy jest uszkodzony. Proszę go pobrać z biblioteki mediów, ponownie zapisać w edytorze graficznym i przesłać jeszcze raz.

Czy można regenerować miniatury na witrynie testowej, a potem przenieść na produkcyjną?

Technicznie tak, proszę skopiować folder /wp-content/uploads/ po regeneracji. Ale jest to ryzykowne: miniatury są ściśle powiązane z rozmiarami zdefiniowanymi w motywie i Ustawienia → Media. Jeśli na witrynie produkcyjnej ustawienia są inne, miniatury znów nie będą pasować. Bezpieczniej jest uruchomić regenerację bezpośrednio na serwerze produkcyjnym po wykonaniu kopii zapasowej.

Czym WP-CLI jest lepsze od wtyczki?

Szybkością. Wtyczka wykonuje żądanie HTTP do samej siebie przez AJAX, każdy plik to jedno żądanie. WP-CLI pracuje bezpośrednio z systemem plików i bazą danych, bez warstwy serwera WWW. Przy tysiącach obrazów różnica to minuty w porównaniu do pół godziny. Ale WP-CLI wymaga dostępu do shella, który nie jest dostępny na wszystkich hostingach.

Czy regeneracja usunie oryginały obrazów?

Nie. Zarówno wtyczka, jak i WP-CLI oraz wbudowany mechanizm WooCommerce pracują tylko na miniaturach, kopiach wygenerowanych z oryginału dla konkretnych rozmiarów. Źródłowy przesłany plik pozostaje nietknięty. Właśnie dlatego regenerację można uruchamiać wielokrotnie, ile razy trzeba.

Czy warto usuwać stare nieużywane miniatury?

Warto, jeśli na hostingu kończy się miejsce na dysku. Zaznaczenie „Usuń stare, nieużywane miniatury" we wtyczce Regenerate Thumbnails znajdzie i usunie miniatury, których rozmiary nie są już zarejestrowane ani w motywie, ani w Ustawienia → Media. Przedtem koniecznie proszę zrobić kopię zapasową, przywrócić usunięte pliki będzie można tylko z kopii zapasowej.

Co zrobić, jeśli po regeneracji obraz i tak nie jest w porządku?

Proszę przejść krótką listę kontrolną. Po pierwsze: proszę otworzyć Ustawienia → Media oraz Wygląd → Dostosuj → WooCommerce → Obrazy produktów, porównać rozmiary. Jeśli nie pokrywają się z tymi zapisanymi w motywie, regeneracja da miniatury inne niż te, których oczekuje szablon. Po drugie: proszę sprawdzić, czy starych miniatur nie buforuje wtyczka cache lub CDN, wyczyścić cache. Po trzecie: proszę otworzyć plik źródłowy z biblioteki mediów, jeśli sam oryginał ma niską rozdzielczość, żadna regeneracja nie poprawi jakości.

W większości sytuacji wystarcza bezpłatny Regenerate Thumbnails. Jeśli sklep jest duży i regeneracja jest potrzebna regularnie, proszę opanować WP-CLI, jedno polecenie oszczędza dziesiątki minut. A na świeżych wersjach WooCommerce mechanizm działający w tle często uruchamia się sam, wystarczy po prostu opublikować nowe rozmiary w konfiguratorze.