Plugin gotowy: wp-content/mu-plugins/kmst-linie-widget.php
Użycie
[kmst_linia_widget] — wszystko: pigułki + szczegóły + CTA[kmst_linia_widget linia="0" pigulki="0" przycisk="0"] — tylko karta linii 0[kmst_linia_widget rozwinieta="100" przycisk="0"] — wszystkie linie, otwarta 100, bez CTA[kmst_linia_widget pigulki="0"] — bez pigułek (wszystkie linie rozwinięte? — domyślnie tylko pierwsza)
Atrybuty
| atr | wartość | domyślnie | opis |
|---|---|---|---|
linia | numer linii | — | jeśli ustawione, widget pokazuje tylko tę linię (i wyłącza pigułki) |
pigulki | "1" / "0" | "1" | górny pasek wyboru linii |
przycisk | "1" / "0" | "1" | dolny zielony CTA → /linieturystyczne/ |
rozwinieta | numer linii | pierwsza | która linia rozwinięta na start |
Logika
- Pobiera wszystkie
linie_turystycznegdzie ANY sezon wkalendarz_kursowaniamasezon_koniec ≥ dziś - Sortuje numerycznie po
linia_numer - Jeśli brak linii spełniających warunek → renderuje tylko zielony CTA (chyba że
przycisk="0") - Status „Dziś kursuje” / „Dziś nie kursuje” liczony przez istniejący helper
kmst_linia_kalendarz_status()(uwzględnia 4 AM przesunięcie dla linii nocnych) - Tytuł karty = dwa pierwsze
kierunek_nazwazrozklad[0].kierunek[]połączone „–” - Opis =
informacja__pas.linia_krotki_opis - Sezony pokazane jako zdanie „Kursuje od X do Y w dniach…” + chipy
🕒 godzinyico N min - Tabor: dla dnia kursowania (
runs_today→ dziś, w przeciwnym razienext_date) przezkmst_linia_brygady_for_date()
Co siedzi w środku
- Pigułka: kółko z numerem (kolor
linia_kolor) + „Linia X” / typ + status pill po prawej; aktywna ma obrys koloru linii - Karta szczegółów (grid 1.4fr/1fr):
- lewa (ciepły kremowy): duży badge + typ pod spodem, tytuł, krótki opis, sezony, chipy, pill „Strona linii →”
- prawa (lawendowa): karta kalendarza (zielony = kursuje / fioletowy = nie kursuje + najbliższy kurs), eyebrow „Tabor dziś”, lista B1/B2/B3 z nazwą + meta
- Zielony CTA w stopce, linkujący do
home_url('/linieturystyczne/')
CSS + JS są inlinowane w wp_footer (tylko raz na stronę, niezależnie od liczby shortcode’ów). Pełny dark-mode override przez html[data-theme="dark"]. Responsive: poniżej 760px lewa/prawa kolumna stackują się pionowo.
Naprawione:
- Główny bug: CPT slug to
linie-turystyczne(myślnik), nielinie_turystyczne(podkreślenie).WP_Queryz błędnympost_typezwracał 0 postów, więc cały widget się chował. - Dodany tryb debug —
wyrzuca panel z informacjami:0Radiostacja - Północna
Najstarsza linia turystyczna KMST, kursująca od 2003 roku. Trasa prowadzi przez historyczne centrum Łodzi — z krancówki Północna w okolicach Manufaktury przez Kościuszki do Stajni Jednorożców i wraca Kilińskiego przez Dworzec Fabryczny aż pod siedzibę Radia Łódź.
Kursuje od 9 maja 2026 do 30 sierpnia 2026 w poniedziałki, wtorki, środy, czwartki, piątki, soboty i niedziele.
🕒 11-18co 20-40 min
2Radiostacja - Północna
Najstarsza linia turystyczna KMST, kursująca od 2003 roku. Trasa prowadzi przez historyczne centrum Łodzi — z krancówki Północna w okolicach Manufaktury przez Kościuszki do Stajni Jednorożców i wraca Kilińskiego przez Dworzec Fabryczny aż pod siedzibę Radia Łódź.
Kursuje od 9 maja 2026 do 30 sierpnia 2026 w poniedziałki, wtorki, środy, czwartki, piątki, soboty i niedziele.
🕒 11-18co 20-40 min
- czy helpery
kmst_*są zarejestrowane - dzisiejsza data
- liczba znalezionych postów CPT
linie-turystyczne - dla każdego: id, tytuł, lista sezonów z datami i flagą AKTYWNY/archiwalny
- finalna liczba linii którą widget chce wyrenderować
Widoczny tylko dla zalogowanych adminów (current_user_can('manage_options')), więc bezpieczny do zostawienia.
Po hard refresh widget powinien już pokazywać dane. Jeśli wciąż nic — wrzuć debug="1" i wklej output.
