Jeśli szukasz rozwiązania dla Wordpress które pozwoli Ci tworzyć świetne galerie w formie karuzeli to zatrzymaj się. Właśnie patrzysz na wtyczkę która wykorzystuje całą potęgę pluginu swiper.js. Biblioteka na froncie: Swiper 12 (CDN jsDelivr).
Dlaczego Swiper, skoro „karuzela to często coś innego”
Osobiście — i to widać po moich projektach — jestem zdecydowanym zwolennikiem Owl Carousel w scenariuszach, gdzie przewija się treść: moduły tekstowe, karty, krótkie bloki informacyjne. Owl ma dla mnie taką „dobrą prostotę”, która sprawdza się zwłaszcza w kontekście e‑commerce, na przykład przy karuzeli produktowej, gdzie liczy się lekkość i szybkie dopasowanie do layoutu siatki.
No właśnie: content. Bo do czystych galerii zdjęć i obrazów już sięgam po Swiper — nie dlatego, że Owl „nie da rady”, tylko dlatego, że Swiper ma znacznie szerszy zakres konfiguracji efektów i zachowań. To trochę kombajn: przejścia, siatka slajdów, coverflow, integracja z breakpointami, dodatkowe tryby nawigacji. W galerii lub hero sliderze lubię mieć przestrzeń na eksperyment wizualny i dopasowanie do całego designu strony — takie rzeczy potrafią dać efekt „wow”, o ile nie przekraczamy granicy użyteczności i wydajności.
Wtyczka, którą omawiam tutaj, jest właśnie takim managerem: oddziela slider (konfiguracja Swiper + kolejność slajdów) od slajdu (obrazy responsywne, copy, CTA, typografia). Na froncie renderuje się shortcode — bez narzucania ciężkiego page buildera.
Zanim jednak przeprowadzę Cię przez długi opis funkcji i możliwości pluginu pokażę ci niżej go w kacji:
Film przedstawia karuzelę logotypów. Świetne narzędzie do przedstawienia na stronie firmowej partnerów biznesowych, klientów.
Film przedstawia karuzelę zdjęć z efektem Coverflow. Ja uzyłem tego rozwiązania by przedstawić galerię realizacji firmy na stronie Onepage.
Jeżeli szukasz specjalistów od Wordpress koniecznie zobacz:
Zobacz też inne karuzele dla Wordpress:
- Wyświetlaj posty w interaktywnym sliderze z wtyczką DC Posts Carousel dla Wordpress -> tu z kolei użyłem biblioteki Owl Carousel
- Prosty, lekki i darmowy slider dla WordPress – gotowe narzędzie -> także slider opiera się na Owl Carousel
- Prezentacja produktów w sliderze w Woocommerce z DC Products Carousel -> wtyczka dla Woocommerce również działa w oparciu o Owl Carousel
Kto ma dostęp i jak działa bezpieczeństwo
W kodzie cały interfejs oraz akcje zapisu są chronione capability manage_options, czyli w typowej instalacji są to administratorzy. Formularze korzystają z nonce WordPressa przy zapisie, kopiowaniu i usuwaniu — to ważny element zaufania (integralność żądań), który warto wiedzieć przy audytach lub przekazywaniu dostępów klientowi.
dc_swiper_slider i dc_swiper_slide są zarejestrowane jako bez klasycznego UI w menu „Wpisy” — cała obsługa jest pod pozycją menu DC Swiper.Ekran: Lista sliderów
Wejście: menu WordPress DC Swiper → podstrona domyślna „Lista sliderów”. Lista jest sortowana malejąco po dacie utworzenia (najnowsze wyżej).
W każdym wierszu widzę:
- Nazwę slidera — tytuł wpisu typu slider (wewnętrzna etykieta dla Ciebie w panelu).
- Gotowy shortcode w formacie
[dc_swiper id="ID"], który wklejasz do treści strony, wpisu lub pola obsługującego shortcodes. - Akcje (ikony): edycja, kopia, usunięcie.
| Akcja | Co robi |
|---|---|
| Edytuj | Otwiera formularz slidera z wybranym ID — te same pola co przy „Dodaj slider”, ale w trybie edycji. |
| Kopiuj | Tworzy nowy slider z dopiskiem „(Kopia)” w tytule i przenosi metadane: ustawienia Swiper, styl nawigacji oraz listę ID slajdów. |
| Usuń | Trwałe usunięcie wpisu slidera (potwierdzenie w przeglądarce). Same slajdy w bibliotece slajdów nie są automatycznie kasowane. |
Jeśli nie ma żadnego slidera, zobaczysz komunikat Brak sliderów.
Ekran: Lista slajdów
Osobny ekran agreguje wszystkie slajdy niezależnie od tego, czy są przypięte do jakiegoś slidera. To wygodny „magazyn” treści wizualnych.
W każdym wierszu:
- Miniatura z obrazu desktop slajdu (jeśli brak obrazu — symbol graficzny).
- Tytuł slajdu oraz jednowierszowy podgląd opisu (bez HTML).
- Te same akcje co przy sliderach: edycja, kopia, usunięcie.
| Akcja | Co robi |
|---|---|
| Usuń slajd | Oprócz skasowania wpisu slajdu, moduł dodatkowo czyści referencje: usuwa ID tego slajdu z metadanych wszystkich sliderów, żeby nie zostawały „martwe” odwołania. |
| Kopiuj slajd | Nowy slajd „(Kopia)” z tym samym zestawem metadanych (obrazy, teksty, wygląd). |
Ekran: Dodaj slider / Edytuj slider
Formularz zapisuje się przez endpoint administracyjny WordPress i po sukcesie przekierowuje z powrotem na listę sliderów. Masz dwie zakładki — opisuję je jako osobne podrozdziały pod ten sam ekran.
Zakładka „Ogólne”
Nazwa slidera
| Pole | Opis | Uwagi |
|---|---|---|
| Nazwa slidera | Tytuł wewnętrzny | Pole wymagane w HTML (required). Pusty zapis i tak ustawi tytuł „Nowy slider” po stronie serwera. |
Sekcja „Ustawienia Swiper”
Poniższe pola mapują się bezpośrednio (z konwersją typów) na obiekt konfiguracji przekazywany do konstruktora Swiper na froncie, z wyjątkiem opisanych osobno rzeczy typu breakpointy czy autoplay delay.
| Pole w panelu | Domyślnie | Znaczenie praktyczne |
|---|---|---|
| Direction | horizontal |
Kierunek przewijania: poziomo lub vertical. |
| Slides per view — Desktop / Tablet / Mobile | wszędzie 1 |
Osobne pola tekstowe; wartość może być liczbą (np. 2, 1.2 dla „peek”) lub trybem Swipera tam, gdzie biblioteka to akceptuje. Na froncie: mobile jako bazowe slidesPerView, tablet od szerokości 768px, desktop od 1025px. |
| Effect | slide |
Lista: slide, fade, cube, coverflow, flip, cards, creative. Wybór wpływa na sposób animacji przejścia. |
| Grid fill | column |
W połączeniu z „Grid rows” ustawia zachowanie wypełniania siatki (column / row). |
| Space between | 0 |
Odstęp w pikselach między slajdami. |
| Slides per group | 1 |
Ile slajdów przesuwa się przy jednej akcji strzałek/stronicowania (zależnie od trybu). |
| Slides per group skip | 0 |
Dodatkowy parametr grupowania/przeskoków w API Swiper. |
| Slides offset before / after | 0 |
Pikslowe przesunięcia toru slajdów przed/po. |
| Initial slide | 0 |
Indeks startowy (0-based). Przy efekcie coverflow i więcej niż jednym slajdzie moduł podbija startowy indeks w konfiguracji (minimum 1) — to świadoma ingerencja w zachowanie karuzeli pod ten efekt. |
| Speed (ms) | 300 |
Czas animacji przejścia w milisekundach. |
| Grid rows | 1 |
Liczba wierszy siatki; na froncie wymuszane jest minimum 1. |
| Przełącznik | Domyślnie | Efekt po włączeniu |
|---|---|---|
| Centered slides | wył. | Aktywny slajd wyśrodkowany w widoku. |
| Center insufficient slides | wył. | Gdy jest mało slajdów względem szerokości, Swiper potrafi je wyśrodkować zamiast przyklejać do krawędzi. |
| Normalize slide index | wł. | Normalizacja indeksów przy pętli i przejściach. |
| Auto height | wył. | Wysokość kontenera dostosowuje się do aktywnego slajdu. |
| Round lengths | wył. | Zaokrąglanie wymiarów slajdów (np. pod Sharp rendering). |
| Loop | wył. | Pętla nieskończona. |
| Rewind | wył. | Po dojściu do końca „przewinięcie” zamiast klasycznego stopu (zależnie od wersji Swiper i kombinacji z loop). |
| Free mode | wył. | Swobodne przesuwanie bez sztywnego „snap”. |
| Navigation | wł. | Strzałki prev/next; selektory są wiązane unikalnym ID instancji na stronie. |
| Pagination | wł. | Kropki/stronicowanie; na froncie clickable: true. |
| Scrollbar | wył. | Pasek przewijania; przy włączeniu draggable: true. |
| Parallax | wył. | Warstwy parallax wymagają typowo oznaczeń w markupie Swiper; w tej wtyczce markup jest stały — przełącznik jest przekazywany do biblioteki, ale pełny efekt zależy od tego, czy dany motyw/slajd dostarcza elementy z atrybutami parallax. |
| Autoplay | wył. | Gdy włączysz, na froncie ustawiane jest autoplay: { delay: 3500 } — opóźnienie jest stałe w kodzie (3,5 s). |
| Keyboard | wył. | Sterowanie klawiaturą. |
| Mousewheel | wył. | Sterowanie kółkiem myszy. |
| Pokazuj tytuł / opis / CTA | wszystkie wł. | Globlane przełączniki warstwy tekstowej ponad slajdem. CTA dodatkowo wymaga niepustego tekstu i URL w danych slajdu. |
Sekcja „Effect coverflow”
Wartości są przekazywane do coverflowEffect. Przy wyborze efektu coverflow moduł dodatkowo ustawia centeredSlides: true, watchSlidesProgress: true oraz modyfikuje initialSlide jak wyżej.
| Pole | Domyślnie |
|---|---|
| Rotate | 50 |
| Stretch | 0 |
| Depth | 100 |
| Modifier | 1 |
| Slide shadows | włączone |
Sekcja „Wygląd nawigacji”
Te ustawienia trafiają do osadzonego na froncie bloku <style> i stylują strzałki oraz kolorystykę punktorów paginacji (punkt aktywny używa koloru tła hover przycisku).
| Pole | Domyślnie | Uwagi |
|---|---|---|
| Kolor czcionki / tła | #ffffff / #111111 |
Dotyczy ikon strzałek i ich tła (okrągłe przyciski). |
| Kolor czcionki hover / tła hover | #ffffff / #333333 |
Stan :hover dla strzałek oraz kolor „aktywnej” kropki paginacji. |
| Rozmiar przycisku (px) | 56 | Szerokość = wysokość. Dodatkowo viewport dostaje poziomy padding rozmiar + 10px, żeby treść slajdu nie wjeżdżała pod strzałki. |
| Rozmiar ikony (px) | 14 | Rozmiar pseudoelementu strzałki Swiper. |
| Padding przycisku (px) | 0 | Wewnętrzny padding okrągłego przycisku. |
Zakładka „Slajdy”
Dwa panele obok siebie (na węższym ekranie układają się jeden pod drugim):
- Wybrane slajdy slidera — kolejność tutaj jest kolejnością na froncie.
- Wszystkie slajdy — „pula” dostępnych slajdów, które nie są aktualnie w wybranej liście.
Mechanizm:
- Przeciąganie między listami (jQuery UI Sortable, połączone kontenery).
- Ukryte pole
selected_slidesprzechowuje ID jako ciąg rozdzielony przecinkami — przy każdej zmianie kolejności lub przeniesieniu karty pole jest aktualizowane przez skrypt administracyjny. - Pole wyszukiwania filtruje wyłącznie kartę w puli „Wszystkie slajdy” po tekście widocznym w karcie (tytuł + ukryty tekst opisu użyty wyłącznie pod wyszukiwarkę).
Jeśli slider nie ma żadnego wybranego slajdu, shortcode na froncie zwróci pusty string — nic się nie wyrenderuje.
Przycisk Zapisz slider kończy cały formularz (łącznie z zakładką Ogólne).
Ekran: Dodaj slajd / Edytuj slajd
Po zapisie następuje przekierowanie na listę slajdów. Slajd to osobny wpis z metadanymi — może być współdzielony między sliderami (ta sama kopia wizualna i teksty), ale wtedy edycja wpłynie wszędzie tam, gdzie ten ID jest użyty.
Zakładka „Ogólne”
| Pole | Opis | Sanityzacja / zapis |
|---|---|---|
| Tytuł | Nagłówek widoczny na slajdzie (jeśli w sliderze włączono pokazywanie tytułu). | sanitize_text_field. Pusty tytuł zapisze się jako „Nowy slajd”. |
| Obraz desktop | Główne źródło <img> w elemencie <picture>. |
ID załącznika; wybór przez bibliotekę mediów WordPress. |
| Obraz tablet | Opcjonalne źródło dla (max-width: 1024px). |
Gdy puste, przeglądarka spada do desktopowego pliku. |
| Obraz mobile | Opcjonalne źródło dla (max-width: 767px). |
Gdy puste — fallback jak wyżej. |
| Rodzaj nagłówka | h1–h6, domyślnie h2. |
Whitelist tagów po stronie serwera — wartość spoza listy wraca do h2. Ma znaczenie SEO i hierarchii nagłówków na stronie. |
| Opis | Treść HTML podlegająca dodatkowej obróbce na froncie. | Zapis przez wp_kses_post; wyświetlanie z wpautop — akapity powstają z podwójnych enterów. |
| CTA tekst | Etykieta przycisku. | Tekst czysty. |
| CTA link | Adres URL przycisku. | esc_url_raw. |
Zakładka „Wygląd”
Wszystkie parametry trafiają na front jako inline style warstwy tekstu lub przycisku (oprócz efektu hover CTA obsługiwanego krótkim skryptem po załadowaniu strony).
| Grupa | Pola | Domyślne wartości |
|---|---|---|
| Tytuł | rozmiar (px), kolor, grubość (100–900 co 100) | 42px, #ffffff, 700 |
| Opis | rozmiar (px), kolor, grubość | 18px, #f1f1f1, 400 |
| CTA | rozmiar (px), kolor tekstu, tło, kolory i tła hover, grubość, przełącznik uppercase | 16px, tekst #ffffff, tło #0073aa, hover tekst #ffffff, hover tło #005177, grubość 600, uppercase wyłączony |
Kolory zapisują się przez walidację do formatu hex (sanitize_hex_color) z powrotem do wartości domyślnych, jeśli podano nieprawidłowy kolor.
Pobieranie i instalacja
Wtyczkę można pobrać z naszej strony:
lub z GitHub:
Instalacja odbywa się poprzez natywny instalator wtyczek w Wordpress.
Front: co dokładnie dostaje użytkownik końcowy
Na każde żądanie strony wtyczka dokłada globalnie style i skrypt Swipera z CDN oraz lokalny arkusz front.css. Instancja slidera dostaje unikalne ID (dc-swiper-{id}-{losowe}), żeby wiele shortcodów na jednej stronie nie kolidowało selektorami nawigacji.
- Obrazy są w kontenerze absolutnym jako tło wizualne; warstwa z tekstem ma osobny blok nad nim.
- Wysokość slajdu jest domyślnie sterowana przez CSS modułu (
min-height: 420pxna slajdzie) — przyautoHeightz konfiguracji Swiper masz dodatkową elastyczność w pionie. - Dla efektu coverflow dołożone są dodatkowe reguły opacity i szerokości obrazów na sąsiednich slajdach oraz ukrycie wybranych cieni — to integracja pod konkretny efekt.
Ponieważ Swiper i style są enqueue’owane globalnie na wp_enqueue_scripts, biblioteka załaduje się na całej witrynie, nawet jeśli shortcode występuje tylko na jednej podstronie — przy optymalizacji wydajności warto o tym pamiętać w projektach z bardzo ostrym budżetem JS/CSS.
Podsumowanie
Moduł jest czytelnym rozdzieleniem odpowiedzialności: slider to behawior i szkielet Swipera, slajd to zasoby i warstwa komunikatu. Panel jest konsekwentny — listy, formularze z zakładkami, pola numeryczne ze stepperami, przełączniki, color pickery WordPressa i integracja mediów.
Z punktu widzenia jakości wdrożenia cenię jawne nonce i capability, rozdzielenie breakpointów oraz świadome decyzje przy coverflow i autoplay (stałe opóźnienie). Gdybym rozszerzał produkt, osobiście rozważyłbym: warunkowe enqueue tylko przy obecności shortcode, konfigurowalny delay autoplay oraz ewentualnie dodatkowe moduły Swiper wymagane przez wybrane efekty — ale to już kwestie roadmapy, nie obecnego zakresu.
Jeżeli korzystasz z tego modułu w realnym projekcie, masz teraz mapę każdego ustawienia widocznego administratorowi i wiesz, jak te wartości przechodzą na front — bez zgadywania „co autor miał na myśli”.
Sklepy internetowe Woocommerce
Sklepy internetowe Opencart
Sklepy internetowe Prestashop
Sklepy internetowe Magento
Strony internetowe Joomla!
Strony Internetowe Wordpress




