Mam 1000 zdjęć. Jak sprawić, by Wordpress generował kciuk tylko w razie potrzeby. Na przykład suwak domowy używa tylko 10 obrazów. Nie chcę, aby pozostałe 1000 obrazów wygenerowało tę miniaturę, ponieważ jest to strata miejsca i zasobów.
Istnieje sposób na uruchomienie add_image_size tylko wtedy, gdy jest to potrzebne?
Dzięki
AKTUALIZACJA Jak już wspomniałeś, tak naprawdę nie dodajesz rozmiaru obrazu, co trzeba uruchomić. Byłoby wspaniale odpalić zmianę rozmiaru obrazu, gdy użyję_post_thumbnail ('slider-thumb'); Może to spowalnia pierwszy widok obrazu, ale ten widok jest zwykle generowany przeze mnie, gdy faktycznie przeglądam post, więc nie obchodzi mnie to.
Więc między moimi postami, suwakiem, blogami, miniaturami portfolio itp. Dostałem 1000 obrazów i chcę zmienić rozmiar 10 zdjęć dla suwaka. Widzę dużo zmarnowanych zasobów, aby wygenerować rozmiar miniatury dla pozostałych 990 obrazów.
Mam nadzieję, że teraz wszystko jest jasne, przepraszam za mój angielski
Odpowiedzi:
Spójrz na wtyczkę Dynamic Image Resizer firmy Otto
źródło
Umieść to w pliku funkcji motywu. Dzięki temu Wordpress nie będzie tworzył niczego poza 3 domyślnymi rozmiarami podczas przesyłania.
Gdy obraz zostanie następnie zażądany w określonym rozmiarze, który nie został jeszcze wygenerowany, zostanie utworzony tylko raz.
źródło
Niestety odpowiedź @ Patrick przerywa funkcje srcset wprowadzone w WP 4.4. Na szczęście musimy tylko dodać dwie dodatkowe funkcje!
Najpierw musimy tymczasowo ponownie wprowadzić wszystkie zarejestrowane rozmiary miniatur do metadanych obrazu, aby można je było rozważyć:
Następnie musimy przejrzeć dopasowania i wygenerować brakujące miniatury:
źródło
W rzeczywistości
add_image_size()
nie generuje miniatury, po prostu rejestruje rozmiar obrazu jako dostępny dla WordPress.Zazwyczaj miniatury są generowane przy pierwszym załadowaniu obrazu. Jest to proces automatyczny, więc nie musisz się martwić o wygenerowanie ich później. Pomyśl o tym w ten sposób - jeśli wygenerowanie miniatury na wolnym serwerze zajmuje 1-2 sekundy, a Ty czekasz, aż zostanie o to poproszony, zmuszasz osobę, która ją wyświetla, do oczekiwania na dodatkowe 1-2 sekundy na obraz, aby zobaczyć zawartość. O wiele łatwiej jest to zrobić z wyprzedzeniem - tj. Po przesłaniu obrazu.
Jednocześnie, jeśli absolutnie musisz przetwarzać miniatury w innym czasie, możesz zajrzeć do wtyczki Viper's Regenerate Thumbnails . Używa akcji na żądanie, aby zregenerować wszystkie miniatury obrazów ... ale możesz użyć podobnego kodu, aby wygenerować miniatury tylko w razie potrzeby.
źródło
Nie dokładnie. Ale możesz filtrować listę zarejestrowanych rozmiarów tuż przed wygenerowaniem miniatur. Funkcja wp_generate_attachment_metadata () (która wywołuje funkcję, która generuje miniatury) ma filtr o nazwie „intermediate_image_sizes_advanced”, który pozwala manipulować tablicą rozmiarów tuż przed wygenerowaniem plików. Możesz użyć tego filtra za każdym razem, gdy dodajesz obraz określonego „typu”, a następnie usuń go natychmiast po.
Wydaje mi się, że twoim największym wyzwaniem byłoby dowiedzieć się, jak odróżnić obrazy wymagające dodatkowych rozmiarów od tych, które tego nie potrzebują.
źródło
Możesz użyć mojej wtyczki (nie Ottos) „Dynamic Image Resize” 1) .
Wtyczka posiada również tag szablonu i krótki kod .
1) Właśnie dowiedziałem się o wtyczce Ottos. Nazewnictwo kolizji nie było zamierzone.
źródło
Możesz wypróbować tę wtyczkę: https://wordpress.org/plugins/optimize-images-resizing
Zmienia rozmiar zdjęć w oparciu o zarejestrowany rozmiar obrazu, ale tylko w razie potrzeby. Mogą również wyczyścić istniejące rozmiary obrazów, aby mogły się zregenerować.
źródło
Wtyczka WP Performance Pack oferuje „ulepszoną obsługę obrazów”, która jest oparta na Ottos Dynamic Image Resizer, ale zawiera wiele ulepszeń, np .: przede wszystkim jest kompatybilna z najnowszą wersją WordPress (3.9.1), wykorzystuje WP_Image_Editor, zapisywanie miniatur może być wyłączone (ale można je buforować, a obsługa CDN jest w drodze), integracja Regenerate Thumbails (aby usunąć istniejące miniatury) i jeszcze więcej.
źródło
Możesz spróbować również Aqua Resizer - https://github.com/syamilmj/Aqua-Resizer/
To tylko jeden plik.
Możesz użyć tego w następujący sposób:
źródło
Oto jeszcze jedno podejście: łączy się z obsługą błędów 404 HTTP. Oznacza to, że gdy miniatura nie jest dostępna, znajdź oryginalny obraz i utwórz miniaturę. Pamiętaj, że tak naprawdę nie rozwiązuje to problemu, ponieważ nie zapobiega generowaniu miniatur podczas przesyłania.
Pamiętaj również, że ta wtyczka może być wykorzystywana przez złośliwych użytkowników do tworzenia dowolnej liczby miniatur, a tym samym do wyczerpania miejsca na dysku.
Uwaga: tę wtyczkę można łatwo zainstalować przy użyciu wtyczki .
źródło