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
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@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ć.
odpowiedzGratuluję udanego debiutu :)
odpowiedzZgodnie 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.
odpowiedzDł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:
?
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@Kuba,
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
zamiastis_page
.Korzystając z opisu funkcji – kolejne wpisy można dodawać po przecinku (według ID, sluga lub tytułu) np.:
odpowiedzis_single('1','2','3')...
więc nie ma potrzeby powtarzania instrukcjiif
:-)Dzięki Szymek! Jutro spróbujemy :)
odpowiedz[…] Czytaj ciąg dalszy artykułu » […]
odpowiedzPrzepraszam 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?).
odpowiedzDodam, że całość instaluje się w stopce.
odpowiedz@aniec2 podaj adres swojego bloga, bo bez wglądu na żywo ciężko cokolwiek wywnioskować.
odpowiedzOk 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.
odpowiedzDzięki za cynk, właśnie instaluję wtyczkę :)
odpowiedzBardzo praktyczny wpis – dzięki, już zastosowałem…
odpowiedzMam 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!
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.
odpowiedzCzy coś się w tej kwestii zmieniło przy jakiejś aktualizacji?
odpowiedzPró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.
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:
[…] Czytaj ciąg dalszy artykułu » […]