A WordPress Gutenberg block plugin that renders a Swiper-powered slider with slide and fade transition effects.
- Gutenberg block: SliderPress (
slider-press/slider) - Powered by Swiper.js
- Transition effects: Slide and Fade (configurable per block)
- Slides authored as
core/groupInnerBlocks (each Group = one slide) - Editor UX: slides displayed side-by-side (horizontal scroll) so you can see and edit each slide without vertical stacking
- Block sidebar settings:
- Effect: Slide | Fade
- Loop
- Speed (ms)
- Autoplay + Autoplay Delay
- Pagination (bullets)
- Navigation (prev/next arrows)
- Download
sliderpress-<version>.zipfrom the Releases page. - In WordPress admin, go to Plugins → Add New → Upload Plugin.
- Upload the ZIP and click Install Now, then Activate Plugin.
- Add the SliderPress block from the block inserter in any post or page.
- Upload the
sliderpressfolder towp-content/plugins/. - Activate the plugin in Plugins → Installed Plugins.
- WordPress 6.3 or higher
- PHP 7.4 or higher
- In the block editor, insert the SliderPress block.
- Each slide is a Group block. Add content inside the Group—images, text, or any blocks.
- In the editor the slides are shown side-by-side with a horizontal scrollbar so you can edit each slide directly.
- Use the block sidebar (Inspector Controls) to configure:
- Effect: Choose between Slide (default) or Fade.
- Loop: Enable continuous looping.
- Speed: Transition speed in milliseconds.
- Autoplay: Auto-advance slides with a configurable delay.
- Pagination: Show clickable bullet dots below the slider.
- Navigation: Show Previous/Next arrow buttons.
- Save or publish the post. The slider initialises automatically on the frontend.
- Node.js v18+
- npm v9+
# Clone the repository
git clone https://github.com/bradhogan/Slider-Press.git
cd Slider-Press
# Install dependencies
npm install# Production build (outputs to build/)
npm run build
# Development build with file watcher
npm run startSlider-Press/
├── .github/
│ └── workflows/
│ └── release.yml # Automated release ZIP workflow
├── block.json # Block metadata
├── slider-press.php # Plugin entry point
├── webpack.config.js # Custom webpack config (extends @wordpress/scripts)
├── package.json
├── src/
│ ├── index.js # Block editor (edit + save)
│ ├── frontend.js # Frontend Swiper initialisation
│ ├── editor.css # Editor-only styles → build/index.css
│ └── style.css # Frontend + editor styles → build/style-index.css
└── build/ # Compiled assets (committed; no build step needed)
├── index.js
├── index.css
├── index.asset.php
├── style-index.css
├── frontend.js
├── frontend.css
└── frontend.asset.php
| Command | Description |
|---|---|
npm run build |
Production build |
npm run start |
Development build with watch |
npm run lint:js |
Lint JavaScript source files |
Releases are automated via .github/workflows/release.yml. To publish a new release:
- Bump the version in
slider-press.php,package.json, andblock.json. - Run
npm run buildand commit the updatedbuild/directory. - Tag the commit and push the tag:
git tag v0.1.1 git push origin v0.1.1
- The workflow will:
- Install npm dependencies
- Run
npm run build - Package the plugin into
sliderpress-<version>.zipwith the root folder namedsliderpress/ - Attach the ZIP to a new GitHub Release
The resulting ZIP (sliderpress-0.1.1.zip) can be installed directly via WordPress → Plugins → Add New → Upload Plugin.
If you need a ZIP without pushing a tag:
npm run build
VERSION=$(node -p "require('./package.json').version")
SLUG=sliderpress
mkdir -p /tmp/${SLUG}
rsync -a \
--exclude='.git' --exclude='.github' --exclude='node_modules' \
--exclude='src' --exclude='webpack.config.js' \
--exclude='package.json' --exclude='package-lock.json' \
. /tmp/${SLUG}/
cd /tmp && zip -r "${SLUG}-${VERSION}.zip" "${SLUG}/"The ZIP will be at /tmp/sliderpress-<version>.zip.
GPL-2.0-or-later — see LICENSE.