Swiper.js dla Wordpress - kompleksowe narzędzie do tworzenia profesjonalnych galerii zdjęć

Swiper.js dla Wordpress - kompleksowe narzędzie do tworzenia profesjonalnych galerii zdjęć

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:

  1. Wyświetlaj posty w interaktywnym sliderze z wtyczką DC Posts Carousel dla Wordpress  -> tu z kolei użyłem biblioteki Owl Carousel
  2. Prosty, lekki i darmowy slider dla WordPress – gotowe narzędzie -> także slider opiera się na Owl Carousel
  3. 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.

Ważne: typy treści 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

SCREEN: Lista sliderów — nagłówek, przycisk „Dodaj slider”, lista wierszy
SCREEN: Lista sliderów — nagłówek, przycisk „Dodaj slider”, lista wierszy

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

SCREEN: Lista slajdów — miniatury, tytuł, fragment opisu, akcje
SCREEN: Lista slajdów — miniatury, tytuł, fragment opisu, akcje

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

SCREEN: Formularz slidera — zakładki Ogólne i Slajdy
SCREEN: Formularz slidera — zakładki Ogólne i Slajdy

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. 21.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: truewatchSlidesProgress: 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”

SCREEN: Slider — Slajdy: dwa kontenery drag&drop + wyszukiwarka
SCREEN: Slider — Slajdy: dwa kontenery drag&drop + wyszukiwarka

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_slides przechowuje 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”

SCREEN: Slajd — Ogólne: tytuł, media, nagłówek, opis, CTA
SCREEN: Slajd — Ogólne: tytuł, media, nagłówek, opis, CTA
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 h1h6, 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”

SCREEN: Slajd — Wygląd: rozmiary, kolory, wagi, uppercase CTA
SCREEN: Slajd — Wygląd: rozmiary, kolory, wagi, uppercase CTA

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:

Pobierz z Design Cart1

lub z GitHub:

Pobierz 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: 420px na slajdzie) — przy autoHeight z 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”.