Custom Post Carousels with Owl


This plugin uses the Owl-Carousel-2 jQuery plugin to create carousels (sliders) from any built in or (public) custom post type in WordPress. You can use this plugin to make:

  • Image Carousel from Media Library
  • Product Carousels (Choose WooCommerce Products)
  • Featured Product Carousels
  • Carousels from Posts or Products by ID
  • Taxonomy (Category/Tag) Carousels
  • Carousel from Any Custom Post Type
  • Latest Posts
  • WooCommerce Reviews
  • More

Easy to use controls allow for customization of each carousel with options to show or hide Titles, Featured Image, Call to Action buttons (links) and more.

This plugin is simple and without on screen nags, promotions or upsells.

Snímky obrazovky

  • Admin View of a Featured Product Carousel
  • Admin View of choosing by post ID.
  • Admin View of Chosen Category
  • Public Large Desktop View. With Featured Image and CTA Link to item.


This section describes how to install the plugin and get it working.

  1. Upload owl-carousel-2.php to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‚Plugins‘ menu in WordPress
  3. Click on the menu item called Carousels
  4. Create your carousel.
  5. Copy the Shortcode and place in your page or post, or place <?php echo do_shortcode('[dd-owl-carousel id="1" title="Carousel Title"]'); ?> in your templates

Nejčastější dotazy

I made the carousel, but now I can’t see it.

Make sure you insert the shortcode created by the plugin.

Can I use multiple carousels on a single page?

Yes, you can use as many as you want. Each one will have it’s own CSS ID so you can target them in your custom CSS files if you need to.

Are there programming Hooks?

Yes, there are 2 hooks. One is before the carousel contents, and the other is after the contents. There will be more enhancement to this at a later date.

  1. dd-carousel-before-content
  2. dd-carousel-after-content

These hooks pass 1 parameter which is $carousel_ID if needed.

Example to add pricing for WooCommerce Carousels – Add to your theme functions.php :

    function add_wc_price_to_carousel(){
    global $post, $woocommerce;
    $product = wc_get_product( $post->ID );
    if ($product) {
        echo '<p class="price">$' . $product->get_price() . '</p>' ;
        echo '<a href="'.get_permalink( $post->ID ).'" class="btn btn-primary ">Shop Now</a>';
    add_action('dd-carousel-after-content', 'add_wc_price_to_carousel', 10);

Can I Filter the Query Arguments?

Yes, there is currently one filter.

  • dd_carousel_filter_query_args

This filter passes 2 variables. $args the current arguments of the WP_Query and $carousel_id which is the ID of the carousel you want to filter.

Example to create your own custom Query – Add to your theme functions.php :

add_filter('dd_carousel_filter_query_args', 'filter_carousel', 10, 2);
function filter_carousel($args, $carouselID){
    if ($carouselID == 9803){
    $args = array(
        'post_type'              => array( 'post' ),
        'meta_query'             => array(
                'relation' => 'AND',
                    'key'     => '_chosen_store',
                    'value'   => '1',
                    'compare' => '>=',
                    'type'    => 'NUMERIC',
    return $args;

Are there other filters available?

There are currently several filters available to you. You can apply these in your theme’s functions.php

  1. dd_carousel_filter_excerpt ($excerpt, $carousel_id)
    • $excerpt : string the excerpt
    • $carousel_id int the post ID of the carousel.
  2. dd_filter_owl_carousel_script ($owl_script, $carousel_id)
    • $owl_script string the jQuery function that invokes the Owl Carousel
    • $carousel_id int the post ID of the carousel.
  3. dd_carousel_filter_title_heading ($heading)
    • $heading string – use any additional valid HTML tag to wrap the title that isn’t already present.
  4. dd_carousel_filter_prev and dd_carousel_filter_next
    • This might be helpful to include a fontawesome or other icon set as the Prev/Next buttons
  5. dd_carousel_filter_caption ($the_caption, $caption)
    • $the_caption – The HTML wrapper and caption for an image carousel
    • $caption The wp_get_attachment_caption caption for the image

Example of script filter:

apply_filters('dd_filter_owl_carousel_script', 'my_filter_owl_carousel_script', 10 , 2);
function my_filter_owl_carousel_script($script, $carousel_id){
    // Do stuff
    return $script;


8. 2. 2021
Absolutely amazing plugin! Great filtering options and very easy to use. Exactly what I was looking for!
8. 8. 2020
I tried a few other plugins before this one and this is by far the best! It's easy to use, very customizable, and has responsive options. The random sorting was not saving and the developer fixed it and pushed out an update in less than 24 hours!!! Now that's what I call good support.
27. 5. 2020
I've had success with this plugin and generally good response time from Howard, thank you! 🙂 The only changes I'd love to see is another option besides "dots" to advance (arrows on the sides, perhaps) and the ability to turn the auto-play off. Hopefully that will be coming soon. Thanks again!
Přečtěte si všech 7 recenzí


Custom Post Carousels with Owl je otevřený software. Následující lidé přispěli k vývoji tohoto pluginu.


Přehled změn


Add „Media/Image“ Carousel with choose media items. Additional filters added for convenience.


Add two additional filters dd_filter_owl_carousel_script and dd_carousel_filter_excerpt
Fix for CPT adding meta to all posts.


Fix Random


Fix for Elementor


Fix missing param in filter


Fix – Admin enqueue stylesheets only on carousel pages/edit.


Add Parameter to action hooks for carousel ID.


Minor fix on admin switching between Product choices.


Added Taxonomy Carousel and filter for main Query.


Fix issue with multiple WC Categories


Add multi selection for Taxonomy Terms.


Add Placeholder image for no-image


Fix Error with AQ Resize


Add Thumbnail Image Sizes


Allow for empty excerpt under title.


Change admin script to only enqueu on carousel custom post type.


Initial Release