Jest to pierwszy tego rodzaju wpis na moim blogu. W tego typu wpisach chciałbym się z Tobą dzielić moimi doświadczeniami podczas pracy z WordPressem czy też innymi projektami. Tym razem podzielę się z Tobą moją pierwszą wpadką, która miała miejsce na początku mojej przygody z tworzeniem stron internetowych. Był to błąd, który popełniłem przy jednym z pierwszych moich zleceń podczas wyświetlania wpisów ze stworzonego wcześniej nowego typu postu. Błąd, który okazał się banalnym w naprawieniu. Trudno w tym przypadku mówić o błędzie, było to raczej niedopatrzenie.
Nowy typ wpisu i dodatkowe pola – Cennik
Na początek stworzyłem nowy typ postu jakim był cennik. Jak tworzyć takie customowe typy postów opisuję w innym wpisie Własne typy wpisów w WordPressie. Ten rodzaj wpisu nie miał być niczym skomplikowanym, a wręcz przeciwnie – maksymalnie uproszczonym. Potrzebowałem zatem stworzyć typ posta, który pozwoli mi na:
- dodatnie tytułu/nazwy usługi,
- dodatnie treści, która służyć ma jako opis danej usługi – maksymalnie jedno zdanie,
- możliwości przypisania danej usługi do kategorii,
- dodanie ceny,
Oprócz samego typu wpisu, potrzebowałem jeszcze stworzyć dodatkowe pola (metaboxy) odpowiedzialne za przechowywanie odpowiednich cen za konkretne usługi. Pól było kilka, ponieważ cena mogła być jedna, konkretna za daną usługę, mogła zaczynać się „od” jakiejś kwoty lub mógł być podany również przedział cenowy „od – do”. Do tego potrzebna była mała logika, aby dodać odpowiednie przedrostki przy cenach podczas ich listowania na stronie cennika. Do obsługi dodatkowych pól w nowym typie postu wykorzystałem wtyczkę ACF. Dzięki temu bardzo szybko mogłem stworzyć potrzebne, dodatkowe pola formularza i wdrożyć założoną logikę.
Front End – Testy
Przygotowanie strony z wpisami było szybkim procesem. Wszystkie pozycje cennika miały mieścić się na jednej stronie, bez opcji przechodzenia do pojedynczego wpisu z opisem usługi. Kiedy już wszystko zostało odpowiednio przygotowane, zakodowane, przyszedł czas na wprowadzanie konkretnych danych. Dodałem kilka kategorii, trochę podkategorii no i przypisałem do nich odpowiednie usługi. Wszystko wyglądało dobrze, wszystko ładnie się wyświetlało, tak jak chciałem, bez większych problemów.
Przyszedł czas na wysłanie strony na produkcję. Ponownie wszystko sprawdziłem i wysłałem wszystko na serwer klienta – wszystko działało jak należy (tak by się mogło wydawać).
Co było nie tak?
Klient po kilku tygodniach napisał do mnie wiadomość z prośbą o dodanie jeszcze kilku pozycji cennika, bo nie ma ich na stronie. Wydawało mi się, że te pozycje dodawałem, ale przecież mogłem się mylić. Więc w ramach opieki na stroną, która jest w gratisie na pewien okres, bez problemu przystąpiłem do dodawania wspomnianych pozycji.
Zalogowałem się do panelu administracyjnego, przeszedłem do cennika, aby sprawdzić czy na pewno tych pozycji tam nie ma. Co się okazało? Oczywiście, że są! Szok! Pierwsza myśl, to gdzieś musiałem popełnić błąd przy listowaniu wszystkich pozycji. Sprawdzam kod – wszystko jest ok. W związku z tym zacząłem się zastanawiać, co może być przyczyną niewyświetlania się wszystkich pozycji cennika, skoro kod i wszystko dookoła wygląda ok.
Na pierwszy rzut oka wyglądał faktycznie ok. Słowem klucz całego zamieszania okazało się stronicowanie. Banał – pomyślałem. Wiadomo, że w WordPressie, kiedy wyświetlamy archiwum wpisów, niezależnie czy typem wpisu jest „post” czy nasz customowy typ postu, kiedy listujemy wszystko, domyślnie jest to podzielone na strony. Liczbę wyświetlanych wpisów na stronie można zmienić w ustawieniach. Tutaj tkwił cały problem. Pozycji w cenniku w danej kategorii było na tyle dużo, że musiała być podzielona na dwie strony, a skoro w kodzie nie było to uwzględnione, to paginacja nie była wyświetlana. Przypominam, że założeniem było wyświetlenie wszystkich wpisów na jednej stronie z podziałem na kategorie i podkategorie.
Koniec końców wystarczyło dodać jedną, krótką linijkę kodu do zapytania, aby wszystko wyświetliło się jak należy, bez podziału na strony. Jedno małe niedopatrzenie sprawiło, że mój klient nie świadczył prawie połowy swoich usług z danej kategorii.
Wnioski na przyszłość
Człowiek uczy się całe życie. Najlepiej jakby się uczył na czyichś błędach, niestety nie zawsze tak się da. Mam nadzieję, że Ty czytając ten wpis nauczysz się czegoś na moim błędzie – taki jest cel tych artykułów.
Od czasu tego zdarzenia testując wdrożone funkcjonalności strony internetowej zawsze wprowadzam większą ilość danych, aby dokładnie zobaczyć jak zachowuje się strona, kiedy musi wyświetlić małą ilość pozycji, a jak kiedy tych pozycji jest więcej. Sprawdzam czy wszystko wygląda dobrze w różnych rozdzielczościach (czy strona jest responsywna), czy paginacja kiedy jest potrzebna wyświetla się w tym miejscu, co powinna i wygląda tak jak powinna.
Artykuł przyjemny dla oka i użyteczny. Na innych stronach formatowanie tekstu czasami woła o pomstę do nieba. Jak widzę ścianę tekstu to po prostu wychodzę. Tutaj odpowiednie odstępy i treść. Na pewno będę zaglądał tutaj częściej 🙂
Dzięki, oczywiście zapraszam do odwiedzania 🙂