<?php 
/** 
 * Function to list the videos 
 * 
 * @param [type] $atts 
 * @param [type] $content 
 * @return void 
 */ 
function yt_list_videos($atts, $content=null){ 
    global $post; 
    $atts = shortcode_atts([ 
        'title' => 'Video gallery', 
        'count' => 20, 
        'category' => 'all' 
    ]); 
 
    //check category with the short code 
    if($atts['category'] == 'all'){ 
        $terms = ''; 
    }else{ 
        $terms = [ 
            [ 
                'taxonomy' => 'category', 
                'field'    => 'slug', 
                'terms'    => $atts['category'] 
            ] 
            ]; 
    } 
    //Query Args 
    $args = [ 
        'post_type'     => 'video', 
        'post_status'   => 'publish', 
        'orderby'       => 'created', 
        'order'         => 'DESC', 
        'posts_per_page'=> $atts['count'], 
        'tax_query'     => $terms 
]; 
 
    //fetch videos 
    $videos = new WP_Query($args); 
    //check for videos 
    if($videos->have_posts()){ 
        $category = str_replace('-', ' ', $atts['category']); 
 
         //Init Output 
         $output = ''; 
         //Build Output 
         $output .= '<div class = "video-list">'; 
         
         while($videos->have_posts()){ 
            $videos->the_posts(); 
             //Get field values 
            $video_id = get_post_meta($post->ID, 'video_id', true); 
            //Get field values 
            $details = get_post_meta($post->ID, 'details', true); 
 
            $output.='<div class="yt-video">'; 
            $output.= '<h4>'.get_the_title().'</h4>'; 
            if(get_settings('yt_setting_disable_fullscreen')){ 
                $output.= ' <iframe width="560" height="315" src="https://www.youtube.com/embed/'.$video_id.'" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'; 
            }else{ 
                $output.= ' <iframe width="560" height="315" src="https://www.youtube.com/embed/'.$video_id.'" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" ></iframe>'; 
            } 
            $output.= '<div>'.$details.'</div>'; 
            $output.='</div><br></hr>'; 
         } 
         
         $output .= '</div>'; 
         //reset post data 
         wp_reset_postdata(); 
         return $ouput; 
    }else{ 
        
        return '<p> No videos at the moment </p>'; 
    } 
} 
 
//set shortcode 
add_shortcode('videos', "yt_list_videos");
 
 |