Multiple Post type in one slider Shortcode
Using This Shortcode For Owl Carousel In Your Page And Add Your Custom
Post Type In The Arguments of QueryPut This Code in Your functions.php
add_action( 'wp_enqueue_scripts', 'my_child_enqueue_styles' );
function my_child_enqueue_styles()
{
wp_enqueue_style('styleowl','https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.0.0-beta.2.4/assets/owl.carousel.min.css');
wp_enqueue_style('style1','https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.0.0-beta.2.4/assets/owl.theme.default.min.css');
wp_enqueue_script('pro-owl','https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.1/owl.carousel.min.js',array( 'jquery' ), '', false);
wp_enqueue_script('jquery','https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js',false);
}
add_shortcode('post_slider','custom_slider');
function custom_slider(){
$args = array(
'post_type' => array('post','events'), // add to your multiple post type in the array
'post_status' => 'publish',
'posts_per_page' => -1,
);
$arr_posts = new WP_Query( $args );
if ( $arr_posts->have_posts() ) :
ob_start(); ?>
<div class="product-carousel">
<div class="owl-carousel themes-p" id="product">
<?php
while ( $arr_posts->have_posts() ) :
$arr_posts->the_post();
?>
<div class="item list-porduct">
<div class="product_image">
<a href="https://wordpress.stackexchange.com/questions/360447/<?php the_permalink() ?>">
<?php the_title(); ?>
<?php the_post_thumbnail('medium'); ?>
</a>
</div>
</div>
<?php
endwhile;
?>
</div>
</div>
<?php endif; ?>
<style type="text/css">
.owl-prev {
width: 15px;
height: 100px;
position: absolute;
top: 0%;
outline: none;
transform: translateY(95%);
margin-left: -20px;
display: block !important;
}
.owl-next {
outline: none;
width: 15px;
height: 100px;
position: absolute;
top: 0%;
transform: translateY(95%);
right: -20px;
display: block !important;
}
.owl-prev span {
position: absolute;
color:red;
width: 34px;
height: 36px;
left:20px;
font-size: 40px;
line-height: 32px;
}
.owl-next span {
position: absolute;
color:red;
width: 34px;
height: 36px;
right:20px;
font-size: 40px;
line-height: 32px;
}
</style>
<script type="text/javascript">
jQuery('#product').owlCarousel({
autoplay:true,
items: 5,
nav: false,
loop:true,
dots: false,
margin:10,
mouseDrag: true,
responsiveClass: true,
responsive: {
0:{
items: 1
},
480:{
items: 1
},
769:{
items: 2
},
1024:{
items: 4
},
1440:{
items: 4
},
}
});
</script><?php}
- Add This [post_slider] shortcode in Your page Builder Text Element