Dwie rzeczy sprawiły, że wystartował w poniedziałek serwisik (a przyszłości – ogromny portal freelancerski) pod zdradzającym funkcję tytułem Wpzlecenia.pl.
Pierwsza rzecz to mój wpis sprzed tygodnia, w którym radziłem Wam, gdzie freelancer może szukać zleceń związanych z WordPressem. Zacząłem się po nim zastanawiać dlaczego nie ma jeszcze takiego serwisu jak Wpquestions.com, ale dla osób, które wolą wszystko robić w granicach Polski; przynajmniej w językowych granicach.
Druga rzecz to coponiedziałkowy natłok maili na skrzynce. Powoli wychodzę już z fazy freelancingu, w której freelancer rzuca się na każde zlecenie, robi ich 4-5 równocześnie i w efekcie zawala terminy i część zleceń – co tu ukrywać – jednak robi tak, że potem poprawki zajmują więcej czasu niż samo zlecenie. Dlatego postanowiłem sobie, że nie więcej niż jedno duże zlecenie na raz. Szkoda nerwów.
W poniedziałek więc odpisywałem ludziom, że jeśli chcą to i owszem, mogę się zająć ich zleceniem ale najwcześniej gdzieś w okolicach końca czerwca. Wtedy właśnie przyszła mi myśl: może czas na polski serwis wp-lancerski? (właśnie wymyśliłem to słówko, fajne, nie?)
I tak oto po kilku godzinach (najwięcej zajęło dodanie formularza dodawania zleceń) działa: wpzlecenia.pl. Zapraszam, oczywiście całość za darmo i nie planuję zarabiać na tym póki co. Jest już nawet pierwsze zlecenie (prawdę mówiąc myślałem, że z 2 tygodnie będzie tam pusto), ale z tego co wiem, wykonawca już się znalazł po kilku godzinach.
Aha, mam do Was prośbę. Czy możecie mi pomóc w wypromowaniu tego serwisu? Jak wspomniałem całość działa za free dla użytkowników, więc fajnie by było jakby ktoś to docenił. Jak możecie pomóc?
Jeśli masz stronę wu wu wu: wklej proszę gdzieś ten krótki kod html:
<a href=”http://wpzlecenia.pl” title=”Wordpress zlecenia”>WPzlecenia.pl – płatne wsparcie dla WordPress</a>
Jeśli macie jakiegoś bloga, szczególnie na WordPressie, może choć krótko wspomnicie, że jest taka strona jak Wpzlecenia.pl? Nie zapomnijcie w tekst wpleść takich zwrotów „jak rewolucja w polskim internecie”, „najlepszy startup 2010 roku”, „miażdżący pomysł” itp itd
A tak poważnie, napiszcie cokolwiek.
Jeśli macie konto na facebooku, można zostać lubisiem tej strony. Tutaj.
I przede wszystkim: dodawajcie tam zlecenia lub zaglądajcie sprawdzając czy są nowe
Postanowiłem choć trochę i przez chwilę nie być psem ogrodnika i podzielę się z Wami informacjami, gdzie w sieci są dedykowane miejsca, w których każdy, kto zna WordPressa choć trochę bardziej niż na poziomie dodawania do niego wpisów i zmieniania opcji w Kokpicie, może zarobić trochę grosza. Niestety miejsc takich nie jest dużo (a może po prostu ja nie znam więcej?)
To chyba najpopularniejsze miejsce. Codziennie pojawia się około 10 ogłoszeń ze zleceniami, których charakter jest naprawdę różny. Od prostych próśb o modyfikację stylów, po zlecenia stworzenia zaawansowanych serwisów społecznościowych w oparciu o BuddyPress. Przy ogłoszeniach nie są publikowane budżety, jakie zleceniodawcy są w stanie nam zaoferować, więc odpisując na ogłoszenie sami musimy napisać ile sobie za naszą pracę liczymy (ja także dodaje termin wykonania prac). Dodatkowym plusem jest to, że w serwisie nie musimy sie rejestrować. To zwyczajna tablica ogłoszeń, na którą każdy może wysłać ogłoszenie podając dane kontaktowe (email) i my te dane widzimy od razu.
Mniej więcej rok temu dość intensywnie korzystałem z tego serwisu i przyznam, że niektóre ogłoszenia udało mi się przechwycić. Dużym utrapieniem jest jednak spora liczba ogłoszeń od ludzi – pośredników. Wiele bowiem osób wyłapuje lepiej płatne zlecenia odnośnie wordpressa w serwisach ogólno-freelancerskich (jak np elance.com) udając, że się zna na WordPressie, a gdy takie ogłoszenie mu się dostanie, wtedy szuka podwykonawcy na jobs.wordpress. Komunikacja w takim wypadku jest fatalna, ostatecznie zlecenie okazuje się dotyczyć czegoś zupełnie innego niż pierwotnie i szczerze nigdy nie udało mi się go sfinalizować. Tak więc z miejsca odradzam przyjmować zlecenia z jobs.wordpress od osób, których nazwisko lub email wskazują, że są hindusami (przepraszam za ten nacjonalizm, ale każda lepiej zorientowana osoba, wie jaka jest rola hindusów w informatycznym outsourcingu: to zleceniobiorcy, a nie zleceniodawcy).
Obecnie ze strony nie korzystam już w ogóle, bo jestem w tej komfortowej sytuacji, że (odpukać) nie muszę szukać klientów, a to klienci sami mnie znajdują.
Strona mniej popularna, ale musze przyznać, że ogłoszeń jest tam już coraz więcej. Kiedyś jak startowała było jedno ogłoszenie na kilka dni, obecnie jest już nawet kilka dziennie.
Strona działa zupełnie inaczej niż poprzednia. Trzeba się zarejestrować (zarówno zleceniodawcy jak i -biorcy), zleceniodawca dodając pytanie od razu wyznacza ile chce zapłacić temu, kto mu pomoże. Następnie wszyscy mogą w określonym czasie zamieszczać (jawnie w postaci komentarzy) swoje odpowiedzi na pytanie i na koniec zleceniodawca decyduje komu zapłaci (a zapłacić komuś musi, bo zadając pytanie dokonuje przedpłaty na konto WP Questions, serwis ten zresztą pobiera swoją prowizję).
Czy jest to skuteczne, nie wiem
Zawsze gdy tam zajrzę jest już tyle odpowiedzi na pytanie, że nie chce mi się dopisywać kolejnej. Widziałem, że Wojtek czasem udziela tam odpowiedzi, więc może wypowie się czy udało mu się coś w ten sposób zarobić
* * *
To wszystkie mi znane serwisy. Bierzcie i korzystajcie, albowiem jak napisałem, ja już z nich nie korzystam, nie muszę.
A może ktoś zna inne miejsca gdzie wordpressową wiedzę można realnie spieniężyć? Oczywiście wszystkie większe strony freelancerskie mają dział odnośnie wordpressa (jak wspomniany przeze mnie wyżej Elance), ale jeśli ktoś ma jeszcze coś do dodania, zapraszam do podzielenia się tym w komentarzach!
W sieci zapanowała szarość. Jeśli jesteś webmasterem i też chcesz okazać szacunek wobec zmarłych na swojej stronie, jednak nie chcesz na stałe zmieniać wszystkich obrazków na stronie na odcienie szarości, znalazłem dwulinijkowy sposób w javascript pozwalający na żywo zamienić wszystkie obrazki ze znacznika <img> tak aby były pozbawione kolorów.
Po kolei.
Wchodzimy na stronę pixastic i pobieramy skrypt. Na stronie jest fajny konfigurator, który pozwala pobrać tylko co nam potrzebne. Jako, że niemal każdy chyba na wordpressie ma aukatywnione jQuery, polecam zaznaczyć opcje ‘Pixastic Core’, ‘jQuery plugin’ i ‘Desaturate’.
Pobrany plik umieść na serwerze i w nagłówku strony podlinkuj go (zakładam, że masz podłączone także jQuery).
W stopce strony dodaj skrypt js:
$d = jQuery.noConflict;
$d("img").pixastic("desaturate");
I to wszystko.
Oczywiście skrypt nie załatwia wszystkiego. Nadal pozostaną kolory czcionek czy tła zdefiniowane w CSS, także obrazki tła nie zostaną podmienione.
Jak działa skrypt możecie zobaczyć na stronie HR Standard
Pluginów do cache’owania stron stworzonych w WordPress jest wiele. I całe szczęście, bo niestety są sytuacje, w których WordPress ma spore problemy z prędkością. Niestety jak do tej pory nie udało mi się znaleźć rozwiązania idealnego. Dlatego też chcę przedstawić własne rozwiązanie, pomagające przyspieszyć generowanie stron unikając zbytniego mielenia funkcjami php i odpytywania bazy danych.
Podstawowym problemem wszystkich pluginów jest fakt, że cache’owania jest fakt, że strony są przechowywane w całości. Plugin raz na jakiś czas generuje całe strony i dopiero po określonym odstępie czasu generowanie się powtarza. To sprawia sporo problemów z choćby obsługą ciasteczek: nie można rozpoznawać użytkownika po ciasteczku i wysyłać mu spersonalizowanej strony, bo WordPress z takim pluginem do wszystkich wysyła takie same strony.
Oczywiście są metody na obejście tego, jednak każda ma jakieś wady. Można w ustawieniach pluginu zarządać aby nie cache’ował poszczególnych stron, nie działał gdy użytkownik jest zalogowany, można też w WP Super Cache użyć odpowiednich hacków. Jednak zawsze oznacza to całkowite wyłączenie cache’owania. Cała strona jest cache’owana lub niecache’owana.
A co jeśli by podejść do zagadnienia pregenerowania zawartości nieco inaczej? Czy na pewno musimy pregenerować całe strony od <html> do </html> ?
Odpowiedź brzmi: oczywiście nie. Skoro szablony i tak mamy rozbite na najczęściej 5 plików – header.php, index.php, sidebar.php, footer.php i style.css, index.php włącza w siebie pozostałe pliki wcześniej je generując (za wyjątkiem oczywiście pliku stylów, ten jest statyczny), czy na pewno na przykład header.php musi być generowany za każdym razem? Nawet jeśli musi (bo na przykład ma odwołania do plików JS zależnych od zawartości konkretnej strony): czy każdy fragment takiego pliku musi być generowany za każdym razem? Jestem niemal pewien, że obecny w chyba każdym pliku nagłówka kod bloginfo(‘charset’) generuje zawsze to samo od powstania blogu, aż do jego „śmierci”.
Można też znaleźć i dłuższe, bardziej złożone fragmenty kodu php, który tak naprawdę generuje zawsze to samo, a przynajmniej nic nie stoi na przeszkodzie aby wygenerowana zawartość odświeżała się powiedzmy raz na godzinę. Czy masz w sidebarze swojego bloga jakiś widget wstawiający zawsze te same reklamy? Dlaczego więc WP miałby przy każdej odsłonie strony odpytywać bazę danych co ma do tego widgetu wstawić?
Mam nadzieję, że już rozumiecie na czym polega problem. A rozwiązaniem jest: cache’owanie fragmentów strony, a nie całości.
Jak to zrobić?
1.
Do swojego pliku functions.php w katalogu skórki dodaj następujący kod:
function mincache($whatto, $howlong = '15', $work = TRUE) {
if ($whatto == '') {
exit ('Please specify name of cached code');
}
if ($howlong == '') $howlong = '15';
$folder = trim(parse_url(get_bloginfo('template_directory'), PHP_URL_PATH), '/');
$cachefile = $folder.'/mincache/'.$whatto.'-cached.html';
$cachetime = $howlong * 60;
if ($work == TRUE && file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
include($cachefile);
echo "\n";
}
else {
$includedFile = 'inc.'.$whatto.'.php';
ob_start();
include_once($includedFile);
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
}
}
2.
W katalogu skórki utwórz katalog o nazwie mincache i nadaj mu uprawnienia do odczytu i zapisu.
3.
Kod, jaki chcesz aby był cache’owany wytnij z pliku php i wklej do nowego pliku i nazwie stworzonej według struktury inc.nazwa.php. Pod nazwa wpisz co chcesz.
4.
W miejsce skąd wyciąłeś ów kod wklej:
mincache('nazwa')
I to wszystko. Teraz zawartość przeniesionego kodu do pliku inc.*.php będzie generowana tylko raz na 15 minut.
* * *
Nieco więcej o stworzonej właśnie funkcji mincache():
mincache($whatto, $howlong, $work)
Jak widać funkcja może przyjmować trzy parametry:
$whatto – nazwa fragmentu kodu który ma być szukany w pliku inc.*.php. Musi więc istnieć plik inc.{$whatto}.php, parametr ten jest bowiem obowiązkowy (inaczej funkcja nie będzie wiedziała co cache’uje.
$howlong – jak długie powinny być odstępy między kolejnymi generowaniami kodu statycznego, w minutach. Domyślnie: 15 minut.
$work – wartość logiczna true/false czy ma próbować pobrać kod z pliku statycznego (true, domyślnie ustawione) czy też za każdym razem generować go od nowa (false). Parametr ten dodałem abyście mogli w czasie prac nad stroną chwilowo wyłączać działanie cache (wartość FALSE).
* * *
I na koniec jeszcze raz konkretny przykład. Załóżmy, że chcemy aby sidebar generował się jedynie raz na pół godziny.
Wykonaj punkty 1 – 2 opisane powyżej.
Otwórz plik sidebar.php, wytnij jego całą zawartość i zastąp:
<?php mincache('sidebar', '30') ?>
Utwórz plik inc.sidebar.php w katalogu skórki i wklej do niego całą zawartość wyciętą przed chwilą z sidebar.php.
I to wszystko. Od teraz sidebar będzie się generował jedynie raz na pół godziny, co na pewno skróci czas ładowania strony.
Nie, nie
Na pewno nie umarł
Nie po to poświęciłem cały rok na dogłębne poznawanie WordPressa abym teraz o nim zapomniał. WordPress znam już bardzo dobrze, tak dobrze, że kilka tygodni temu zacząłem się zastanawiać czy mógłbym go poznać bliżej. Doszedłem do wniosku, że w sferze tworzenia skórek, pisania pluginów wiem lub potrafię wygooglać już wszystko. Kolejny krok to zaangażowanie się w prace nad plikami rdzenia wordpressa, a to mnie z praktycznych powodów nie interesuje. Zatem z zawodowego punktu widzenia „wiem” już wszystko, co jest mi potrzebne do tworzenia strona na WordPressie.
Co więc dalej? Jeśli chodzi o WordPressa, nadal będę wszem i wobec krzyczał, że jeśli ktoś potrzebuje jakiejś z nim związanej pomocy, niech nie waha się do mnie pisać na maila. W wolnych chwilach będę rozwijał WP Sprzedawcę, myślę też nad stworzeniem alternatywnego panelu administracyjnego dla WordPressa. WordPress jest już dość dojrzały, jeśli chodzi o zastosowania jako CMS, ale kuleje jego Kokpit, który dla zwykłego użytkownika jest zwyczajnie trudny. Jeśli klient nigdy dotąd nie używał WP do skończonej pracy muszę dołączać obrazkowy tutorial jak się w nim poruszać.
Dlatego myślę nad stworzeniem czegoś co miałoby zastąpić katalog /wp-admin (a właściwie byłby to kolejny katalog dogrywany do WordPressa) zawierającego w sobie uproszczoną wersję Kokpitu. Fajnie jakby w ogóle to nie przypominało Kokpitu, a było stroną z aktualnie używaną skórką, tyle, że z jakimś menu na górze, a każdy element strony można by kliknąć i edytować on the fly. Co o tym myślicie?
* * *
Ale nie samym WordPressem człowiek żyje. Postanowiłem też przyjrzeć się bliżej jakiemuś CMSowi z prawdziwego zdarzenia. Obecnie chyba najpopularniejszy to Joomla, jednak tak często widzę w sieci jego krytykę, że nawet nie chcę się za niego brać.
Coraz częściej do moich uszu zaczęła dochodzić nazwa Drupal. A to ktoś gdzieś napisał (chyba na flakerze), że WordPress w końcu ma coś, co Drupal ma od dawna i bardzo tego w WP brakowało. Ostatecznie do mojej wizyty na stronie Drupala przyczyniła się publikacja jakichś wyników konkursu na najbardziej innowacyjne strony zeszłego roku i większość z nich – choć w ogóle do siebie nie były podobne – działała właśnie na Drupalu.
I rzeczywście. Kończę już czytać jego dokumentacje i były momenty gdy szczęka mi opadała. Nie bez powodu Drupala nazywa się nie tylko Content Management System, ale także CM Framework. Jakiż on jest elastyczny i modularny. Zupełnie inna filozofia niż WordPress, dająca możliwość tworzenia stron bardzo interreagujących z użytkownikiem. Nie mogę się doczekać kiedy pierwszy raz użyję Drupala przy pracy
* * *
Tak więc rok 2009 należał do WordPressa. Rok 2010 będzie należał do… nadal WordPressa, bo na pewno stworzę jeszcze wiele stron opartych o niego i do Drupala, któremu poświęcę cały rok na naukę (tak jak to zrobiłem z WordPressem rok temu).
Ten wpis jest kolejnym moim chwaleniem się jaką stronę wykonałem na bazie WordPressa, a zarazem chcę tutaj pokazać jak bardzo można zmodyfikować WordPressa (na pierwszy rzut oka nie widać, że to właśnie WordPress) i pokazać praktyczne zastosowanie dziedziczenia szablonów. Powiem szczerze, że jestem dumny z tego, co mi tutaj wyszło
Tutaj czyli na stronie Młodzi Twórcy wykonanej dla Urzędu Miejskiego w Białymstoku. Białystok ma program stypendialny dla ludzi uzdolnionych w różnych dziedzinach (ma zapewne jak i inne miasta, ale tylko Białystok jak widać chce się tym chwalić). Program działa już od jakiegoś czasu, ale teraz przyszła pora na stworzenie dla niego strony internetowej. I tutaj pojawiam się ja (jako podwykonawca dla Man With The Plan).
Powyżej obrazek przedstawiający stronę główną. Wszystkie zrzuty ekranu w tym wpisie są klikalne więc jeśli chcecie, śmiało przechodźcie aby zobaczyć jak to wygląda u Was
Jak widać nie ma tutaj typowo blogowego układu. Mnie to nie dziwi, bo WordPress coraz bardziej staje się zwykłym CMSem zdolnym do tworzenia każdego rodzaju stron (choć blogi się w nim robi najłatwiej). Mechanizm bloga wykorzystałem tutaj w dziale Aktualności. Reszta to coś, co w panelu administracyjnym WordPressa nazywa się po prostu Strony.
Ale jakie strony! Poklikajcie na odnośniki w górnym panelu, a przekonacie się, że praktycznie każda z nich wygląda inaczej. Było to nie lada wyzwaniem ale się udało. Inny układ kolumn na poszczególnych podstronach, co innego w sidebarach w zależności od tego na jakiej stronie się właśnie znajdujemy, „podświetlenie” dla pozycji w górnym menu nie tylko gdy jesteśmy na tej właśnie stronie, ale także na stronie potomnej danej podstrony.
Nie było to łatwe, bo musiałem zrobić to jak najbardziej user friendly. Założyliśmy, że osoby w urzędzie nie znają WordPressa, więc sztuczki z Custom Fields, zastosowanie widget logic, custom themes trzeba unikać jak najbardziej. Osoba dodająca treści ma po prostu dodać kolejną stronę, określić, że jest ona „dzieckiem” takiej czy innej strony, a WordPress i jego funkcje same mają rozpoznać jaką właśnie stronę internauta chce wyświetlić i pokazać ją jak na obrazku powyżej (tak, to jest zwykła strona w WordPressie, stworzona we wbudwanym w nim edytorze stron; to ja, a nie osoba wprowadzająca tekst zadbałem by nagłówki miały inny wygląd, by każdy akapit był właściwie oddzielnym divem, a zawarty w nim odnośnik do pliku stał się przyciskiem wyrównanym do prawej) lub na przykład jak ta strona:
Jak widać wyżej mamy trzy sekcje: opis stypendysty, jego (czy w tym wypadku – jej) program stypendium i jego/jej zdjęcia. Tu także całość została zrobiona tak, aby pracownik urzędu nie musiał niczym się martwić: musi jedynie dodać treść, dodać zdjęcia (działa także dodawanie filmów), a to ja musiałem rozpoznać gdzie zaczyna się program stypendium czy właśnie zdjęcia lub filmy (i sprawić by miały inne tło). Co więcej powstały strony grupujące: gdy pracownik urzędu doda stronę konkretnego stypendysty, automatycznie pojawi się ona na stronie ich grupującej rocznikami:
Udało się? Przy „odrobinie” znajomości WordPressa i umiejętności pisania dla niego funkcji, zabawy w dziedziczenie tematów graficznych, efekt jest chyba całkiem niezły, nie prawda?
* * *
A może Ty też chcesz mieć taką stronę, szukasz kogoś kto zajmie się Twoim blogiem, albo znasz kogoś z takimi potrzebami? Zajrzyj na stronę O mnie i odezwij się do mnie w jeden z podanych tam sposobów, a na pewno uda nam sie razem wyczarować coś fajnego


