Description
NEO Bootstrap Carousel is a lightweight, production-ready WordPress slider plugin built on the Bootstrap 3 carousel framework. Create unlimited, fully responsive image slideshows or dynamic post-based carousels and embed them anywhere on your site with a simple shortcode or Gutenberg block.
Originally built by PixelsPress, NEO Bootstrap Carousel is developed and maintained by Mohsin Rafique, a seasoned WordPress and PHP engineer. The plugin is trusted by thousands of WordPress sites worldwide for its simplicity, reliability, and performance.
Online Demo | Documentation & Knowledge Base
Why NEO Bootstrap Carousel?
Most slider plugins are bloated, slow, and overly complex. NEO Bootstrap Carousel takes a different approach: deliver a fast, accessible, and standards-compliant carousel using the battle-tested Bootstrap framework.
- Lightweight – No jQuery UI, no bloated libraries, just Bootstrap + Animate.css
- Zero configuration – Install, add slides, paste shortcode, live in under 2 minutes
- Two slide sources – Media Library images or dynamic posts, WooCommerce products, and custom post types
- Gutenberg ready – Native block editor support, no shortcode memorisation needed
- Theme-agnostic – Works with any WordPress theme, Bootstrap or otherwise
- PHP 8.4 ready – Fully tested on PHP 8.4 with strict type safety
- WordPress 7.0 compatible – jQuery 4.0 compatibility shims included
- Touch-enabled – Swipe navigation on mobile via bundled Hammer.js touch carousel
- Accessible – Keyboard navigation, ARIA roles, screen reader labels
Slide Sources
Media Library – Upload and manage slides directly from the WordPress Media Library with drag-and-drop ordering.
Posts, Products & Custom Post Types – Automatically pull slides from the featured images of any public content type. Pick the Content Type (Posts, WooCommerce Products, or any registered custom post type), then choose what to show:
- Most Recent – Latest 3 published items
- Most Popular – Top 3 by comment count (WooCommerce products ordered by total sales)
- Sticky Posts – WordPress sticky posts (core Post type only)
- Random – 3 randomly selected items
- Specific Category – Items from a chosen taxonomy term (post category, product category, or a CPT taxonomy)
- AJAX-powered live reload when switching content sources (no page refresh needed)
Slide Customisation
- Title and Caption per slide (editable from the admin panel)
- Caption Animations powered by Animate.css (30+ animation styles)
- Dark or Light Overlay per slide with adjustable opacity (5% to 100%)
- Custom URL per slide – link slides to any internal or external page
- Link Target per slide – open slide links in the same window or a new tab
- Per-carousel Slide Interval and Caption Animation overrides – leave empty to inherit the global Design settings
- Drag-and-drop reordering of slides within the admin panel
Navigation and Controls
- Arrow Navigation (Previous / Next) – toggle on or off globally
- Indicator Dots (bullet navigation) – toggle on or off globally
- Keyboard Navigation – Left/Right arrow keys to navigate slides
- Touch/Swipe Support – Native swipe gestures on mobile and tablet devices
- Auto-play with configurable interval (default: 5 seconds)
- Pause on Hover – carousel pauses when the mouse hovers over it
- Wrap Mode – enable or disable infinite looping of slides
Integration
- Shortcode:
[neo_carousel_shortcode id="123"] - Gutenberg Block: NEO Bootstrap Carousel block with visual dropdown selector
- Widget areas: paste the shortcode into any sidebar or footer widget
- Multiple carousels per page supported
Settings
- General Settings – Toggle captions, arrows, and indicator controls globally
- Design Settings – Choose from 30+ Animate.css animation styles for captions and set the default Slide Interval (ms) for all carousels
- Advanced Settings – Show or hide carousel content on mobile devices
Documentation and Support
Full, step-by-step documentation lives in the online Knowledge Base:
https://pixelspress.com/docs/neo-bootstrap-carousel/
It covers everything from your first carousel to advanced use:
- Getting Started – install, activate, and build your first carousel
- Building Carousels – media and post/product slides, captions, overlays, and links
- Displaying Carousels – the shortcode, the block, and widget areas
- Settings and Customization – caption animations, slide interval, and mobile display
- Troubleshooting – fixes for the most common issues
- Developers – hooks, filters, and how to customise the carousel output in code
Credits
- Twitter Bootstrap – Carousel framework by @mdo and @fat
- Animate.css – CSS animations by Daniel Eden
- Hammer.js – Touch gesture recognition
- Select2 – Enhanced select dropdowns
Translators
Please contribute to translate our plugin. Contact at mohsin.rafique@gmail.com.
Captures d’écran







Blocs
Cette extension offre 1 bloc.
- NEO Bootstrap Carousel
Installation
Automatic installation (Recommended)
- Log in to your WordPress admin panel.
- Navigate to Plugins > Add New.
- Search for NEO Bootstrap Carousel.
- Click Install Now, then Activate.
- Go to NEO Bootstrap Carousel > Sliders to create your first carousel.
Manual installation
- Download the plugin ZIP from the WordPress Plugin Directory.
- Extract and upload the
neo-bootstrap-carouselfolder to/wp-content/plugins/. - Activate the plugin from Plugins in your WordPress admin panel.
- Navigate to NEO Bootstrap Carousel > Sliders to get started.
Getting started
After activating the plugin, navigate to NEO Bootstrap Carousel in the WordPress admin sidebar. You will see the Welcome page with three quick-start boxes:
- Add New Slider – Takes you directly to the slider editor
- Configure General Settings – Set up caption, arrow, and indicator visibility
- Configure Design Settings – Choose a caption animation style
Creating a Media Slider
A Media slider uses images from the WordPress Media Library. You have full control over each slide’s title, caption, overlay, and destination URL.
- Go to NEO Bootstrap Carousel > Sliders > Add Slider.
- Enter a title for your slider (e.g., « Homepage Banner »).
- Under « Choose Slide Source », select Media.
- Click the Add Slide to Slider link to open the Media Library.
- Select one or more images, then click Add to Slider.
- For each slide, configure:
- Title – The headline text displayed on the slide
- Description – The caption text displayed below the title
- URL – Link the slide to any internal page or external URL
- Alt Text – Alternative text for accessibility and SEO
- Overlay – Choose Dark or Light to add a colour overlay on the slide image
- Overlay Opacity – Set the overlay transparency from 5% to 100% (in 5% increments)
- Drag and drop slides to reorder them – the order in the admin panel matches the order on the frontend.
- Click Publish (or Update for existing sliders).
After publishing, the Shortcode meta box on the right sidebar displays the shortcode for this slider.
Creating a Posts Slider
A Posts slider automatically pulls slides from the featured images of your published content – blog posts, WooCommerce products, or any custom post type. The carousel updates automatically as your content changes.
- Go to NEO Bootstrap Carousel > Sliders > Add Slider.
- Enter a title for your slider (e.g., « Latest Blog Posts »).
- Under « Choose Slide Source », select Posts.
- In the Content Type dropdown, choose the source: Posts, WooCommerce Products, or any registered custom post type.
- In the Content to Show dropdown, choose one of five options:
- Most Recent – The 3 most recently published items
- Most Popular – The 3 items with the highest comment count (products are ordered by total sales)
- Sticky Posts – All posts marked as « Sticky » in WordPress (core Post type only)
- Random – 3 randomly selected items (changes on each page load)
- Specific Category – Items from a taxonomy term you select (post category, product category, or a CPT taxonomy)
- If you select « Specific Category », a second dropdown appears where you can choose the term.
- The slide preview updates automatically via AJAX when you change the Content Type or Content to Show option – no page refresh needed.
- Click Publish.
Note: Items must have a Featured Image set to appear as slides. Items without a featured image are skipped.
Embedding a Slider
Once a slider is published, you can embed it anywhere on your site using one of three methods.
Shortcode (Classic Editor or any page/post):
Copy the shortcode from the Shortcode meta box on the slider edit screen, or find it in the Sliders list view.
[neo_carousel_shortcode id="123"]
Replace 123 with your slider’s post ID. You can also customise behaviour:
[neo_carousel_shortcode id="123" interval="3000" wrap="true"]
Shortcode attributes:
id(required) – The slider post IDinterval– Auto-play interval in milliseconds (default: 5000)pause– Bootstrap pause option (default: null)wrap– Enable infinite slide looping (default: true)
Gutenberg Block (Block Editor):
- In the page or post editor, click the + button to add a new block.
- Search for NEO Bootstrap Carousel.
- Add the block to your content area.
- In the block inspector (right sidebar), select your slider from the dropdown list.
Widget area:
Add a Shortcode (or Text) widget to any sidebar or footer area and paste the slider shortcode into it.
Embedding a carousel from a theme template file and other advanced usage is covered in the Knowledge Base.
Configuring Settings
Navigate to NEO Bootstrap Carousel > Settings to configure global carousel behaviour. Settings are organised into three tabs.
General Settings – Controls the visibility of carousel UI elements across all sliders:
- Show Caption – Display the title and caption text on slides (default: On)
- Show Arrows – Display the Previous / Next arrow controls (default: On)
- Show Controls – Display the indicator dots below the slides (default: Off)
Design Settings – Set the default Slide Interval (ms) for all carousels (default 5000; individual carousels and the shortcode interval attribute can override it) and choose from 30+ Animate.css animation styles for slide captions:
- Attention Seekers: bounce, flash, pulse, rubberBand, shake, swing, tada, wobble, jello
- Bouncing: bounceIn, bounceInDown, bounceInLeft, bounceInRight, bounceInUp
- Fading: fadeIn, fadeInDown, fadeInLeft, fadeInRight, fadeInUp
- Flipping: flipInX, flipInY
- Rotating: rotateIn, rotateInDownLeft, rotateInDownRight, rotateInUpLeft, rotateInUpRight
- Sliding: slideInUp, slideInDown, slideInLeft, slideInRight
- Zooming: zoomIn, zoomInDown, zoomInLeft, zoomInRight, zoomInUp
- Specials: lightSpeedIn, rollIn
Advanced Settings:
- Show Content on Mobile – Toggle visibility of slide title and caption on small screens (default: On). When disabled, only the slide image is shown on mobile devices.
FAQ
-
Is NEO Bootstrap Carousel responsive?
-
Yes. The carousel is fully responsive and adapts to all screen sizes including mobile devices and tablets. Touch/swipe navigation is enabled automatically on touch devices.
-
Does it work with non-Bootstrap themes?
-
Yes. The plugin bundles its own carousel CSS, so it works with any WordPress theme. Bootstrap-based themes benefit from native styling integration.
-
Can I have multiple carousels on the same page?
-
Yes. Each carousel uses a unique ID, so you can embed as many carousels as needed on a single page using separate shortcodes or Gutenberg blocks.
-
How do I create a Media slider?
-
Go to NEO Bootstrap Carousel > Sliders > Add Slider, select « Media » as the slide source, then click « Add Slide to Slider » to pick images from your Media Library. Configure title, caption, overlay, and URL for each slide, then publish.
-
How do I create a Posts slider?
-
Go to NEO Bootstrap Carousel > Sliders > Add Slider, select « Posts » as the slide source, pick a Content Type (Posts, WooCommerce Products, or any custom post type), then choose a Content to Show option: Most Recent, Most Popular, Sticky Posts, Random, or Specific Category. Items must have a Featured Image set to appear as slides.
-
How do I embed a slider in a page or post?
-
Two ways: (1) Paste the shortcode
[neo_carousel_shortcode id="123"]into any page, post, or text widget. (2) Add the NEO Bootstrap Carousel Gutenberg block and select your slider from the dropdown. -
How do I change the slide order?
-
When editing a slider with Media source, simply drag and drop the slides to reorder them in the admin panel.
-
Can I link slides to other pages?
-
Yes. When using Media source, each slide has a URL field where you can enter any internal or external URL. When using Posts source, slides automatically link to their respective post permalinks.
-
How do I change the animation style?
-
Go to NEO Bootstrap Carousel > Settings > Design and choose from 30+ Animate.css animation styles for your caption animations.
-
How do I hide captions on mobile?
-
Go to NEO Bootstrap Carousel > Settings > Advanced and toggle the « Show Content on Mobile » option off.
-
Where can I find documentation?
-
The full Knowledge Base is at https://pixelspress.com/docs/neo-bootstrap-carousel/ with step-by-step guides for getting started, building and displaying carousels, settings, troubleshooting, and developer customisation.
-
How do I report bugs or suggest features?
-
Check the Knowledge Base first – the Troubleshooting section solves the most common issues. To report a bug or request a feature, email mohsin.rafique@gmail.com or open a thread on the WordPress support forum.
Avis
Contributeurs & développeurs
« NEO Bootstrap Carousel » est un logiciel libre. Les personnes suivantes ont contribué à cette extension.
ContributeursTraduisez « NEO Bootstrap Carousel » dans votre langue.
Le développement vous intéresse ?
Parcourir le code, consulter le SVN dépôt, ou s’inscrire au journal de développement par RSS.
Historique des changements
1.7.0 – 2026-06-14
New Features
* Additional slide sources – the « Posts » source now has a Content Type selector, so a carousel can pull slides from any public custom post type or WooCommerce Products, not just blog posts. The Most Recent / Most Popular / Random / Specific Category modes all carry over: « Specific Category » adapts to the chosen type’s taxonomy (post categories, product categories, or a CPT taxonomy), « Most Popular » orders WooCommerce products by total sales, and « Sticky Posts » stays limited to the core Post type.
* Global Slide Interval (ms) setting under Settings > Design – sets the default slide duration for every carousel on the site. Resolution order: an explicit « interval » shortcode attribute wins, then the per-carousel value, then this global setting, then 5000 ms.
* Per-carousel Slide Interval and Caption Animation overrides – a new « Carousel Settings » side box on the slider edit screen lets each carousel set its own slide duration and caption animation (including « No animation »). Leave a field empty to inherit the global Settings > Design value.
* Custom slide Link Target – each slide (Media and Posts sources) can now open its link in the same window (default) or a new tab; new-tab links receive rel= »noopener noreferrer ».
* Two new developer filters: nbc_slide_post_types (the selectable content types) and nbc_post_type_taxonomy (the taxonomy used for the « Specific Category » filter).
Improvements
* Documentation – the plugin now links to a full online Knowledge Base (https://pixelspress.com/docs/neo-bootstrap-carousel/) for step-by-step guides, settings reference, and troubleshooting. The README is now a focused, user-facing overview; the developer reference (hooks, filters) lives in the Knowledge Base.
* System Status screen now reports Max Input Vars (warns when PHP’s limit could silently drop slides while saving a large slider), the bundled jQuery version, HTTPS status, and WP Debug Mode.
* Asset cache-busting – the admin and public JavaScript and CSS are now versioned by file modification time, so updates reach browsers without waiting for a version bump or a manual cache clear.
* Settings screen layout – the tab content header bar (e.g. « General Settings » with the Save Changes button) now matches the height of the vertical tab items beside it on the General, Design, and Advanced tabs.
* Select2 « Loading more results » and « Searching » messages no longer show corrupted (double-encoded) ellipsis characters.
Changed
* Renamed the « System Requirements » admin page to « System Status » – it now reports the live, evaluated state of the install (pass / fail / info checks and WordPress.org connectivity) instead of a static requirements list. The menu slug, page class, CSS hook (neo-bootstrap-carousel-system-status), and the nbc_system_status_sections filter were renamed to match.
* WPCS cleanup of the placeholder index.php guard files and uninstall.php – the whole plugin now passes the WordPress Coding Standard with zero errors.
* Normalised typographic characters (em/en dashes, curly quotes, arrows, ellipses) to plain ASCII across all plugin files, and kept README.txt and README.md in sync.
Security
* The Design settings save handler now sanitizes its fields server-side before saving (animation style via sanitize_html_class, interval via absint) instead of storing the raw submitted values.
Performance
* The System Status connectivity check and the admin header « Latest version » line now share a single request to api.wordpress.org cached for 12 hours, replacing an uncached remote call that ran on every admin page load.
Fixes
* Per-slide Overlay and Overlay Opacity were reset when the slide list reloaded after changing « Content to Show » (e.g. Most Popular). The reload now carries the on-screen values and merges them with the saved slide data server-side.
* The slide-list AJAX handler now recovers the carousel ID from the edit-screen referer when the request does not include it, so saved Overlay settings still render even with an outdated cached admin script.
* The System Status connectivity check previously read an option that was never set and showed an inverted pass / fail icon; it now reflects the real result.
* The System Status Memory Limit threshold was lowered from 256MB to 64MB (WordPress’s recommended minimum) so healthy sites are no longer flagged, and two requirement-description typos were corrected.
1.6.0 – 2026-05-24
- Feature: Lazy loading for slide images – only the first slide loads immediately, remaining slides load on-demand during transition
- Feature: Post to Show options – Most Popular, Sticky Posts, Random, Specific Category (with AJAX reload)
- Compat: WordPress 7.0 and jQuery 4.0 compatibility verified
- Fix: Overlay and Overlay Opacity settings not saving (PHP 8 strict type comparison with pipe-delimited data)
- Fix: Inline script block moved to wp_add_inline_script() (HTML5 best practice, removes CDATA wrapping)
- Fix: jQuery 4.0 compatibility shims added – $.proxy, $.support.transition, $.fn.emulateTransitionEnd polyfilled
- Fix: jQuery 4.0 compatibility shim added to Select2 for deprecated $.isFunction, $.isArray, $.trim
- Fix: jQuery version gate removed from bundled Bootstrap carousel JS (allows jQuery 4+)
- Fix: Implicit nullable type parameter fixed for PHP 8.4 (shortcode $content)
- Fix: Loose equality (==) replaced with strict (===) in admin JS
- Fix: filter_input(INPUT_GET) replaced with $_GET + sanitize_text_field() in 5 admin files
- Fix: Caption animation function moved from inline script to main JS file (nbcDoAnimations)
- Fix: Template uses require instead of require_once (supports multiple carousels per page)
- Fix: Neo_Bootstrap_Carousel_i18n class renamed to Neo_Bootstrap_Carousel_I18n (PSR naming)
- Fix: WordPress global $post_id override resolved in post-display meta box partial
- Fix: Undefined variable warnings resolved with @var annotations across all template partials
- Fix: WPCS compliance improvements across 15+ files (sanitization, escaping, alignment, formatting)
- Fix: PHPDoc parse error and post-increment corrected in settings tab menu filter
- Fix: Share The Love SVG icons not visible on Welcome page (CSS overflow/positioning fix)
- Refactor: Changelog admin page now reads from README.txt (single source of truth)
- Refactor: Help/FAQ admin page now reads from README.txt (single source of truth)
- Feature: System Status page – added PHP version, WordPress version, plugin version, max execution time, and GD/Imagick checks
- Tweak: README.txt Tested up to updated to 7.0
1.5.1 – 2026-04-08
- Fix: Next/Previous arrow navigation not working due to touch carousel removing Bootstrap data-API click handler
- Fix: Clicking arrow controls was appending carousel ID as URL hash
- Fix: License header corrected to GPL-2.0-or-later (consistent with LICENSE.txt)
1.5.0 – 2026-04-07
- Compatibility: WordPress 6.9 and PHP 8.4 verified
- Fix: $(window).load() replaced with $(window).on(‘load’) for jQuery 3.x compatibility
- Fix: flush_rewrite_rules() removed from init hook (was running on every page load)
- Fix: filter_input_array() second argument added to resolve PHP 8.1 deprecation
- Fix: wp-editor Gutenberg block dependency replaced with wp-block-editor (deprecated WP 5.8+)
- Fix: Block editor script dependencies removed from public page enqueue
- Fix: wp_get_attachment_url() extra argument removed (function only accepts 1 param)
- Fix: Null-safety check added for wp_get_attachment_image_src() return value
- Fix: wp_safe_redirect() now followed by exit for correct redirect behaviour
- Fix: nbc_shortcode() now returns empty string instead of null when no slides found
- Fix: Slide overlay inline style value is now properly escaped
- Fix: Gutenberg render callback moved into class as static method (coding standards)
- Fix: Hardcoded plugin version in default_configurations() replaced with VERSION constant
- Tweak: README.txt headers updated (Tested up to: 6.9, Requires PHP: 8.0)
1.4.3 – 2020-04-30
- Note: Overall code improvements using WordPress Coding Standards
1.4.2 – 2019-11-04
- Feature: Added Gutenberg Block
- Note: Improved code.
1.4.1 – 2019-03-13
- Note: Used CDATA inside JavaScript Tag
- Fix: Resolve caption keep showing on slider even when it is disabled from settings panel
1.4.0 – 2019-03-13
- Tweak: Improved Admin UI/UX
- Note: PHP 7.2 compatible
- Fix – Hide empty elements of carousel If no slider is define
1.3.2 – 2018-06-19
- Fix – When hide display navigation, It hide direction arrows too which is fixed now
- Fix – Slide URL label was wrong, when adding a new slide. It is fixed now.
1.3.1 – 2017-11-08
- Fix – Resolved plugin carousel height conflict with Bootstrap based themes.
1.3 – 2017-11-08
- Feature – You can add 3 recent posts
- Feature – Added a link field in media slides to link slides to internal/external pages/posts.
- Note – Structure Improvement.
- Note – CSS Improvement for better loading speed.
- Note – At activation hook, defined the default settings of the plugin
- Note – Removed pause slide
1.2.1 – 2016-12-30
- Note – Security implemented.
- Fix – Resolved Delete Slide bug
1.2.0 – 2016-10-30
- Feature – Added Slide Overlay with Opacity Control Attribute
- Feature – Added Less Files
- Tweak – Complete structure revised.
- Fix – Resolved the unsaved title & description content bug.
1.1.2
- Fix – Undefined variable version and plugin name in class class-neo-bootstrap-carousel-shortcode.php
1.1.1 – 2016-08-27
- Feature – Added More Animations to Caption & Description
1.1.0 – 2016-08-08
- Feature – Added Animations to Caption & Description
- Tweak – Changed Slider Content Area Layout at Admin Panel
1.0.0 – 2016-07-30
- Initial version
