WP Swiper is an open-source WordPress plugin for building responsive Swiper carousels in the block editor. Each slide accepts nested WordPress blocks, allowing images, headings, buttons, video, and layouts to be combined without a separate page builder.
- Nested WordPress blocks inside every slide
- Horizontal and vertical sliders
- Navigation, pagination, autoplay, loop mode, and free mode
- Responsive breakpoints, spacing, offsets, and slides per view
- Background images, focal points, overlays, thumbnails, and custom navigation icons
- Drag-and-drop image uploads in the block editor
- Conditional frontend asset loading
- Bundled Swiper 14 runtime with no jQuery dependency
- Non-visible slides removed from the accessibility tree and keyboard tab order
- No analytics, advertising, tracking, or telemetry
- WordPress 6.3 or newer
- PHP 7.4 or newer
- A block-based editing environment
The Swiper 14 runtime supports Chrome and Edge 110+, Firefox 110+, and Safari 16.4+. Node.js is required only for development. End users can install a packaged release without Node.js.
Since version 1.4.6, WP Swiper removes non-visible slides from the accessibility tree and keyboard tab order. Focusable content is restored when its slide becomes visible, including in responsive layouts that display multiple slides.
This behavior addresses one carousel accessibility barrier, but it is not a certification that WP Swiper or a website using it conforms to WCAG. Conformance must be evaluated for the complete published page and depends on the carousel configuration, slide content, theme, and other integrations.
Site authors remain responsible for accessible content and configuration. Provide meaningful image alternatives, logical headings, readable contrast, and clear control labels. If autoplay is enabled, enable the pause/play control so users can stop rotation. Rotation stops when keyboard focus enters the carousel and restarts only after an explicit user request. See the W3C carousel accessibility guidance.
The recommended installation is through WordPress.org:
- Open Plugins > Add New in WordPress.
- Search for WP Swiper.
- Install and activate the plugin.
- Add the WP Swiper block in the block editor.
For a GitHub release, download wp-swiper.zip from the Releases page and upload it through Plugins > Add New > Upload Plugin.
git clone https://github.com/andreyc0d3r/wp-swiper.git
cd wp-swiper
npm ci
npm startCreate a production build:
npm run buildCreate and verify an installable archive:
npm run packageThe archive is written to dist-zip/wp-swiper.zip. See the build and release guide for the complete release process.
Compiled files in build/ are committed so the repository remains installable without a local Node.js build.
WP Swiper initializes blocks present at page load and watches for blocks added later. Navigation systems and AJAX integrations can also manage a block explicitly:
const carousel = document.querySelector( '.wp-swiper' );
window.wpSwiperInit( carousel );
window.wpSwiperDestroy( carousel );
window.wpSwiperReinit( carousel );Configuration corrections dispatch wp-swiper:warning with a structured
diagnostic. Initialization failures dispatch wp-swiper:error, and explicit
destruction dispatches wp-swiper:destroy.
- Ask usage questions in the WordPress.org support forum.
- Report reproducible bugs with the GitHub bug form.
- Read CONTRIBUTING.md before submitting a pull request.
- Follow SECURITY.md for private vulnerability reports.
WP Swiper is licensed under the GNU General Public License v2.0 or later.
The bundled Swiper runtime is licensed separately under the MIT License. See THIRD_PARTY_NOTICES.txt.