publikacja: 19 lutego 2009, autor: , komentarzy 16 http://wpninja.pl/artykuly/optymalizacja-wtyczki-kpicasa-gallery/

Optymalizacja wtyczki kPicasa Gallery

Obecnie chyba najlepszą wtyczką pozwalającą zagnieździć na swoim blogu zdjęcia (jak i całe galerie) publikowane w galerii Picasa Web Albums jest kPicasa Gallery. Z jednej strony jest ona w miarę lekka, a jednocześnie spełnia wszystkie wymagania, jakie można postawić tego typu wtyczce.

Niestety – przez (za przeproszeniem) bezmyślność autora wtyczka kPicasa Gallery w znacznym stopniu wpływa na zużycie naszego transferu. W końcu powszechnie wiadomo, że WordPress sam w sobie jest mocnym łańcuchem, ale każda zainstalowana wtyczka jest tym przysłowiowym słabym ogniwem wpiętym pomiędzy oczka naszego łańcucha ;) No ale do rzeczy…

W 99% przypadków galerię zdjęć umieszczamy na tylko jednej podstronie bloga i na logikę można by pomyśleć, że tylko na tej jednej podstronie są ładowane wszystkie skrypty i arkusze stylów potrzebne do poprawnego działania galerii. Jak już wspomniałem we wstępie, przez małą bezmyślność autora blog z aktywną wtyczką kPicasa Gallery przy każdym załadowaniu obojętnie jakiej podstrony ładuje około 60kb śmieci. A każde 60kb śmieci pomnożone przez kilka tysięcy użytkowników dziennie może oznaczać nawet kilka gigabajtów miesięcznego transferu wyrzuconego w błoto. A wystarczy nieco zmodyfikować tylko dwie linie w kodzie wtyczki!

Całą operację łatania wtyczki będziemy przeprowadzać na pliku kpicasa_gallery.php – otwórz go więc w jakimkolwiek edytorze tekstu, lub w edytorze wbudowanym w panel administracyjny WordPressa i podążaj za poniższymi wskazówkami. W miejsce „Galeria zdjęć” wstaw tytuł podstrony, na której jest umieszczona Twoja galeria.

Znajdź (linia 89):

add_action('wp_head', 'initKPicasaGallery');

I zamień na:

if(is_page('Galeria zdjęć')) add_action('wp_head', 'initKPicasaGallery');

Następnie znajdź (linia 96):

if ( function_exists('wp_enqueue_script') )

I zamień na:

if ( function_exists('wp_enqueue_script') && is_page('Galeria zdjęć') )

I to wszystko ;) Zapisz zmiany i ciesz się, bo Twój WordPress stracił właśnie na wadze ponad 60kb ;)

Komentarze

  1. palmiak 8 lat temu:

    Tak naprawdę napisałeś uniwersalny poradnik do wiekszości wtyczek. Oczywiście wynika to troszkę z tego, że autorzy nigdy nie wiedzą gdzie user wstawi wtyczkę, więc wolą zrobić tak, żeby działało wszędzie. Jednak w sytuacjach kiedy dokładnie wiemy gdzie i co umieszczamy takie działania jak Twoje powinny być codziennością.

    To tak jak samo jak z wypisywaniem stron. Na większości naszych blogów nowe strony pojawiają się tak rzadko, że wstawienie na ich na sztywno by było dość logicznym posunięciem i napewno lepszym niż wyciąganie ich za każdym razem z automatu.

    Oczywiście art na plus. Miło że ktoś porusza kwestię optymalizacji.

    odpowiedz
  2. Łukasz Więcek 8 lat temu:

    @palmiak Autorzy mogli dać chociaż f(is_page()), co by ładowało te wszystkie śmieci tylko na stronach, co już by odciążyło bloga (bo przeważnie największy ruch jest w postach). Można? Można ;) Wystarczy chcieć.

    odpowiedz
  3. Adam Klimowski 8 lat temu:

    Gratuluję udanego debiutu :)

    odpowiedz
  4. palmiak 8 lat temu:

    Zgodnie z prawam Murphy’ego gdy tylko autor wtyczki by tak zrobił to od razu na jego blogu pojawiło by się sto komentarzy dlaczego to im w postach nie działa, bo ich marzenie to korzystać z tego w postach… A tak poważnie to najoptymalniejszym wyjściem jest chyba w panelu zrobić zakładkę ‚czy chcesz używać wtyczki we wpsiach?’ ‚czy chcesz używać wtyczki tylko na jednej stronie?’. Aż się prosi to poprawić i podesłać autorowi.

    odpowiedz
  5. Kuba Pudliszewski 8 lat temu:

    Długo czekałem na ten wpis, po Twojej zapowiedzi na Blipie :)

    W każdym razie, proszę o szybkie wytłumaczenie jak to przerobić, by skrypt ładował się dla konkretnego wpisu.

    Czy tak:

    if(is_post('Nazwa postu')) add_action('wp_head', 'initKPicasaGallery');

    ?
    Czy instrukcję if mogę powtórzyć kilka razy, bo postów z galerią miałbym kilka?

    Z tym „is_post” strzelam na zasadzie analogii, kodowanie to moja słaba strona ;]

    Pozdrawiam!

    odpowiedz
  6. Szymon Skulimowski 8 lat temu:

    @Kuba,

    Z tym „is_post” strzelam na zasadzie analogii, kodowanie to moja słaba strona ;]

    Jeśli chcesz żeby wtyczka ładowała bebechy tylko dla konkretnego wpisu (Łukasz w artykule podał przykład dla strony) do powinieneś skorzystać z funkcji is_single zamiast is_page.

    Czy instrukcję if mogę powtórzyć kilka razy, bo postów z galerią miałbym kilka?

    Korzystając z opisu funkcji – kolejne wpisy można dodawać po przecinku (według ID, sluga lub tytułu) np.: is_single('1','2','3')... więc nie ma potrzeby powtarzania instrukcji if :-)

    odpowiedz
  7. Kuba Pudliszewski 8 lat temu:

    Dzięki Szymek! Jutro spróbujemy :)

    odpowiedz
  8. aniec2 8 lat temu:

    Przepraszam za span ale forum jeszcze nie ma a wydaje mi się to ważne. Dzsiaj odnotowałem na 4 z 5 stron (wordpress) instalacje iframe’a jakiejs strony z torronto czy ktos mial dzis podobny wypadek?

    http://i8.photobucket.com/albums/a6/aniec2/truiit.jpg

    Screen powinien wyjaśnić o co chodzi – pomogła aktualizacja z 2.7 na 2.7.1 ale w przypadku stron już na 2.7.1 musiałem robić full backup. Czy miał ktos podobny przypadek? I czy może to być wina mojej firmy hostującej (złe zabezpieczenia?).

    odpowiedz
  9. aniec2 8 lat temu:

    Dodam, że całość instaluje się w stopce.

    odpowiedz
  10. Łukasz Więcek 8 lat temu:

    @aniec2 podaj adres swojego bloga, bo bez wglądu na żywo ciężko cokolwiek wywnioskować.

    odpowiedz
  11. aniec2 8 lat temu:

    Ok już rozwiązałem problem ale z tego co wiem skala masowa. Wirus wykrada hasła do ftpów i wpycha w pliki kod który ukrywa w stopce stronkę firmy z Kanady. Zmiana hasła i backup i format dysku poki co jest dobrze.

    odpowiedz
  12. marsjaninzmarsa 8 lat temu:

    Dzięki za cynk, właśnie instaluję wtyczkę :)

    odpowiedz
  13. Jakub Milczarek 7 lat temu:

    Bardzo praktyczny wpis – dzięki, już zastosowałem…
    Mam za to inny problem z wtyczką kPicasa. Po włączeniu w moim serwisie „ładnych adresów” nie chce mi się załadować już żadna galeria. Po kliknięciu adres się zmienia, ale tak jakby nie przenosiło zmiennej… Może macie jakiś pomysł jak to poprawić, tak na szybko: http://www.milczarek.eu/galeria/
    Z góry dzięki!

    odpowiedz
  14. Jakub Milczarek 7 lat temu:

    Już sobie poradziłem :) Robiłem dziś bardzo wiele zmian w serwisie i ruszyło… Prawdopodobnie po tym jak posiedziałem przy ustawieniach w pliku .htaccess.

    odpowiedz
  15. LukasAMD 7 lat temu:

    Czy coś się w tej kwestii zmieniło przy jakiejś aktualizacji?
    Próbowałem na tej i innych wtyczkach i niestety nie działa – otrzymuję w PA komunikat o tym, że wtyczka nie posiada prawidłowego nagłówka i została z tego powodu wyłączona.

    odpowiedz

Dodaj własny komentarz

Odnośniki z innych stron

Lista innych stron, które w jakiś sposób odnoszą się do opublikowanej tutaj treści:

  1. Dream Blog

    […] Czytaj ciąg dalszy artykułu » […]