Ponieważ nasi użytkownicy regularnie przesyłają ~ 6 MB zdjęć do wykorzystania w witrynie (i nie są zbytnio zaznajomieni z tym, jak najpierw zmienić ich rozmiar), WordPress przechowuje oryginały, a także zmienia ich rozmiar do kilku różnych rozmiarów.
Chciałbym funkcji lub wtyczki, która pobiera przesłany obraz, zmienia rozmiar na coś łatwiejszego do zarządzania, a następnie zastępuje oryginał.
Widziałem niektóre funkcje, które usuwają oryginał, ale go nie zastępują, co oznacza, że nie można ponownie wygenerować miniaturek w późniejszym terminie. Potrzebuję go wymienić, aby użytkownik mógł przesłać duży obraz, a jego rozmiar jest automatycznie zmniejszany i zapisywany do przyszłej zmiany w razie potrzeby.
W powyższym rozwiązaniu jest jeden paskudny błąd. Rozwiązanie działa jako urok nowych zdjęć, ale w przypadku starych obrazów nigdy nie należy porównywać,
$upload_dir['path']
ponieważ jest to folder przesyłania bieżącego miesiąca.Zamień następujące:
źródło
Czy mogę zasugerować aktualizację kodu powyższej odpowiedzi? Niestety w nowszych wersjach Wordpress kluczowa „ścieżka” nie jest już dostępna dla rozmiarów plików. Aby więc działał na starszych przesłanych postach, powinniśmy najpierw pobrać bieżący podkatalog z oryginalnego obrazu i użyć go do utworzenia ścieżki lokalizacji dla dużego obrazu.
Więc zamień ten wiersz:
przez te 2 linie:
źródło
Wysłałem to na inne bardzo podobne pytanie tutaj, ale pomyślałem, że warto je opublikować.
Miałem problemy z powyższym kodem i to, co zadziałało, zasadniczo zmieniło te linie:
z:
Zamieściłem pełny kod i dodatkowe wyjaśnienia tutaj: Usunąć oryginalny obraz - zachować miniaturę?
źródło