Na blipie padło pytanie:
klisiu: #wordpress jakiś sprytny sposób na wyświetlenie 2. poziomu nawigacji dopiero kiedy będę odwiedzać stronę będącą rodzicem? |
Oto odpowiedź:
ID.'&echo=0'); if ($children) { ?> <ul></ul> |
Drobna wtyczka, która powstała na zamówienie mojej Lepszej Połowy, a które służy do wyboru województwa z poziomu interaktywnej mapy. Wykorzystałem mapę stworzoną i udostępnioną na stronie: winston_wolf.
Instalacja wtyczki jest prosta:
Mapa nie wymaga flasha czy innych dodatkowych wtyczek, wykorzystuje javascript i arkusze stylów.
Wtyczka dostępna jest w repozytorium wordpress.org: Interactive Polish Map.
Osoby subskrybujące ode mnie treść za pomocą kanału RSS mogły wczoraj doświadczyć dość brzydkiego zjawiska dotyczącego ponownego pobrania już przeczytanych treści lub jej zduplikowania. Spowodowane to było przenosinami z wordpress’a w wersji pojedynczej na takiego bardziej muuu.
Jednocześnie zmigrowałem blog żeglarskiej meczowej ekipy z politechniki gdańskiej, a docelowo przeniosę tutaj kilka jeszcze serwisów, ale to mam nadzieję, nie spowoduje już żadnych zaburzeń.
Opis tego jak połączyć kilka już istniejących wordpress’ów w jeden MU pojawi się prawdopodobnie na najbliższym WordCamp’ie, chyba że nie dam rady doczekać i opublikuję to wcześniej.
Jeżeli posiadasz w WordPressie dużo artykułów (niech będzie, że więcej niż 5000) i na dodatek często w trakcie pisania używasz klawisza „Zapisz szkic” żeby powrócić do tworzenia artykułu po pewnym czasie lub też, już po opublikowaniu, dokonujesz w nim wielu zmian, to musisz liczyć się z tym, że baza używana przez wordpressa spuchnie o poprzednie wersje wpisów.
Nie wiem jak wy, ale ja obserwuję całkiem nowy rodzaj spamu, a właściwie to dwa, choć ten drugi to raczej jest na tyle dowcipnym, że aż go tutaj zacytuję.
Pierwszy trend, dość wredny, to wykorzystywanie już treści istniejących komentarzy do … spamowania.
Drugi, zabawny cytuję:
Mam wielką prośbę, bo właśnie planuję stworzyć blog przybliżony do tego. Napisz, błagam, jak się uchować przed spamerskimi postami, bo kolega mi powiedział, że to najogromniejszy problem… Z góry merci. A tak w ogóle, to świetnie piszesz :). Buziaki dla wszystkich.
Oczywiście „autorem” jest dwuwyrazowa fraza, a celem witryna sklepowa, ale to naprawdę zabawne, żeby powoływać się na ochronę przed spamem w spamerskiej wiadomości.
Czy też może to szczyt bezczelności?
Pierwszy polski WordCamp można uznać za zakończony i choć nie dotrwałem do końca, powalony przez przeziębienie. Po dojechaniu do domu po prostu padłem jak długi, pozbawiony czucia i świadomości.
Wracając jednak do samego Camp’a. Jak już otworzyłem jedno oko i włączyłem lapka w celu sprawdzenia co kto napisał, to ze zdziwieniem odkryłem, że prawie jeszcze nie ma relacji. Oczywiście jest niezawodny Krzysztof Lis, którego pozwolę sobie zacytować, bo prezentowane zdanie jest tak diametralnie różne od mojego, że aż się dziwę, że może być taka różnica.
Patrząc po zawartości prezentacji, przede wszystkim skierowana ona była do developerów, bardziej zaawansowanych użytkowników. Ja osobiście wielu rzeczy nie zrozumiałem, bo nigdy nie miałem (dzięki bogu!) potrzeby wgryzania się głębiej do zawartości skryptu.
Moje zdanie jest o 180° różne. Konferencja była z mojego punktu widzenia, czyli dewelopera wordpressa, straszliwie infantylna, a poziom technicznej wiedzy o WP prelegentów po był momentami prostu tragiczny.
Ogólne wrażenie przytłacza, bo nie wiem czym kierowali się wykładowcy zagłębiając się w szczegóły bez wystarczającej znajomości tematu. Nie wiedziałem czego mogę się spodziewać, więc nie liczyłem na dużo, ale jak można wprowadzać audytorium w błąd, przekazując informacje albo nie sprawdzone, albo po prostu nieprawdziwe.
Organizacja konferencji stała za to na najwyższym poziomie i zostałem tym przez organizatorów po prostu zauroczony. Absolutnie genialne identyfikatory zawierające nasze gravatary pozwalały na szybką identyfikację osób, których nie znam, a jednocześnie znam, bo od kilku lat wymieniamy się komentarzami. Bardzo, ale to bardzo bym chciał podziękować organizatorom za stworzenie tak wspaniałych warunków. Wielka szkoda, że tak wiele osób po prostu nie pojawiło się na miejscu. Ja rozumiem pogodę, ale nie w przypadku kilkunastu czy kilkudziesięciu procent.
Gratisy, co za brzydkie słowo, czyli kubek i koszulka są naprawdę miłym, dla mnie dość niespodziewanym dodatkiem. Fantastyczna atmosfera w kuluarach, możliwość pogadania z ludźmi których czytuje to niewątpliwe duże plusy wordcamp’a.
Czy przyjadę na następny? Chyba tylko jako wykładowca, ale obawiam się że zagłębienie techniczne możliwych do wykonania prezentacji spowoduje odrętwienie słuchających, z których większość (jak podali organizatorzy, 66%) nie byli developerami WP.
Na sam koniec napiszę o fantastycznej wprost wiadomość, otóż onet.pl otworzył instancję wordpresa µ jako kolejną platformę blogową dla swoich klientów. Co prawda lista możliwych do wyboru domen już na wstępie pozycjonują te blogi jako mniej poważne, ale to bez znaczenia. Ważne i cenne jest to, że tak duży gracz wybrał do tworzenia biznesu platformę WP. Mam nadzieję, że odda coś od siebie w postaci poprawek/zmian umieszczonych na codex.wordpress.org, czego i sobie i wam życzę.
Jeszcze dopisek, bo zapomniałem na gorąco. Specjalne podziękowania należą się firmie Adadio – platforma do zarządzania reklamami, bo takiego „zakablowania” auli wykładowej, to ja jeszcze nigdy nie widziałem, w każdym rzędzie był dostępny przedłużacz z prądem. GENIALNE. Bardzo dziękuję, bo mój stary lap to maksymalnie z godzinkę ciągnie.
Początek pracy nad serwisem olandia.pl nie zapowiadał się tak dramatycznie jak się potem okazało. Klient miał już wykonany motyw z którego korzystał budując stronę-wizytówkę w celach prezentacji oferty. Nigdy jednak nie nadeszła długo oczekiwana wersja obsługująca wiele języków, co zaowocowało najpierw zgłoszeniem się po wycenę, a potem już wspólną pracą nad tym samym motywem, ale obsługującym wiele języków.
Wstępnie spróbowałem po prostu uruchomić stronę z wtyczką WPML, którą wybrałem po krótkim teście wtyczek do tworzenia wielojęzykowych serwisów, tak żeby można było wprowadzać informacje w różnych językach i ten kawałek pracy poszedł szybciutko. Wgranie wtyczki, uruchomienie i konfiguracja. Szafa gra! Ale nie do końca działało tak jak powinno. Głęboka analiza motywu, poprzedzająca jeszcze głębszą ujawniła, że początkowy optymizm umierał z minuty na minutę.
Skończyło się napisaniem motywu od nowa z wykorzystaniem gotowych już grafik i arkuszy stylów, co oczywiście przyspieszyło prace nad serwisem.
Wiedząc o tym, że skórka powstaje do wersji wielojęzykowej, została ona mocno zintegrowana z wtyczką WPML, zgodnie z zaleceniami na stronie producenta wtyczki, co okazało się doskonałym rozwiązaniem, bo pobieranie odpowiedników odpowiednich obiektów stało się wręcz banalne. Polecałem już tę wtyczkę? Pewnie już zaczyna to być nudne.
W serwisie użyto również:
Biorąc pod uwagę wyszczególnione tutaj w portfolio prace związane z wordpress, opisywana wdrożenie było znacząco różne. Natomiast to co zostało zrobione pierwotnie, przez wykonawców, których łaskawie pominę, zasługuje na całkowicie oddzielny wpis, który się niedługo pojawi.
Jak policzyć wpisy w kategorii? Okazuje się że bardzo, ale to bardzo prosto.
Na stronie kategorii jest najłatwiej, ponieważ zmienna $cat zawiera numer aktualnie przeglądanej kategorii.
get_category($cat)->category_count
Oczywiście sami podamy numer to też zadziała:
get_category(11)->category_count
Można też wybrać kategorię za pomocą sluga:
get_category_by_slug('nazwa-kategorii')->category_count
Jeżeli chcemy użyć nazwy to musimy skorzystać z get_term_by:
get_category(get_term_by('name', 'Nazwa Kategorii', 'category')->term_id)->category_count
W ostatnim przypadku należy pamiętać, że nazwa kategorii nie jest unikatowa, więc w serwisie może być więcej niż jedna kategoria o wybranej nazwie.
Co ciekawe obiekt kategorii ma dwa pola zawierające dane na temat liczby wpisów (count, category_count), ale nie widzę między nimi różnicy.
Może Ty znasz różnicę?
Sposobów na zrobienie serwisu wielojęzykowego za pomocą jednego wordpressa są co najmniej dwa. Dwa tak oczywiste, że ciężko wpaść jeszcze na inne rozwiązanie.
Pierwszą możliwością jest uruchomieniem wordpressa w trybie multiste i fizyczne uruchomienie tylu podserwisów ile wersji językowych chcemy posiadać. Wadą tego rozwiązania jest to co jest jego zaletą, to że logicznie będą to oddzielne serwisy, z grubsza nie dzielące się zasobami.
Prawie 3 lata temu zastanawialiśmy się z klientem biuro obsługi podatkowej jak stworzyć system webowy, który pozwalałby klientom oraz pracownikom biura na przekazywanie danych istotnych z punktu widzenie prowadzenia firmy, a jednocześnie na tyle prostych, żeby nie trzeba było przechodzić kursu księgowości, żeby zrozumieć działanie takiego systemu.
Na początku został stworzony prosty rejestr klientów w którym każdy z nich może sobie sprawdzić podstawowe dane księgowe. System na start został wyposażony w możliwość wysyłania powiadomień, w których to zawarte są informacje na temat nadciągających nieuchronnie terminów płatności różnych rabowanych nam przez państwo składek. Sam je płacę, więc wiem, a latami miałem ustawioną przypominajkę z kalendarza google.
Wracając do meritum sprawy. Po kilkunastu miesiącach pracy pojawiła się w systemie, jedna z wielu, mała modyfikacja, polegająca na tym, że do firm typu „spółka” można było dołączyć dane wspólników, które mogli oni sobie sprawdzać samodzielnie.
A potem pojawił się błąd. Klient zgłasza, że nie można wprowadzić numeru NIP wspólnika. Zaczynam sprawdzać, raz, drugim trzeci. W kodzie nie ma NICZEGO co sugerowałoby jakiekolwiek operacje na nipie, a walidacja nigdy klientowi nie była potrzebna, bo i sam nip raczej służy do dodatkowej weryfikacji, a nie do czegoś istotnego. Co grosza, moje testy nie pokazywały występowania błędu!!! Wpisywałem prawdziwe, zmyślone i całkiem złe numery nip i nigdy nie napotkałem na opisywany problem. Najgorszym objawem było to że w NIP pojawiał się, niezależnie od wpisywanego numer: 4294967295. Zupełnie nie zwróciłem na tą liczbę uwagi, a powinienem, bo jest ona rozwiązaniem kłopotu.
Problem polegał na użytym polu w bazie danych MEDIUMINT który jest typem domyślnym w czasie deklaracji w mysql pola typu INT ma, bez znaku, taką właśnie wartość maksymalną.
Co ciekawe, przy konstrukcji bazy kilkanaście miesięcy wcześniej i definicji pola NIP na potrzeby firm, nie popełniłem tego błądu i wszystko działało prawidłowo.
Oparte na WordPress & Theme by Anders Norén