SHARE
TWEET

Untitled

a guest Jun 26th, 2019 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function gstaad_mainpage_carousel( $category ) {
  2.  
  3.     // allowed feeds
  4.     $categories = [
  5.         'new',
  6.         'highlights'
  7.     ];
  8.  
  9.     if( !in_array( $category, $categories ) ) {
  10.         return;
  11.     }
  12.  
  13.     $args = [
  14.         'post_type' => 'video',
  15.         'suppress_filters' => 0
  16.     ];
  17.  
  18.  
  19.     switch( $category ) {
  20.         case 'highlights':
  21.  
  22.             // extend category with order by likes and filtered by "highlight" enabled
  23.             $_args = [
  24.                 'meta_key'   => 'likes',
  25.                 'orderby'    => 'meta_value_num',
  26.                 'order'      => 'DESC',
  27.                 'meta_query' =>
  28.  
  29.                     /**
  30.                      * Merge the default video filters with the highlight filter
  31.                      */
  32.                     array_merge(
  33.                         [
  34.                             [
  35.                                 'key'   => 'highlight',
  36.                                 'value' => '1',
  37.                                 'compare' => '='
  38.                             ],
  39.                         ],
  40.                         gstaadpluginVideo::getDefaultVideoFilters()
  41.                     )
  42.  
  43.             ];
  44.  
  45.             break;
  46.  
  47.         case 'new':
  48.  
  49.             // only filter out default filters
  50.             $_args = [
  51.                 'meta_query' => gstaadpluginVideo::getDefaultVideoFilters()
  52.             ];
  53.  
  54.             break;
  55.  
  56.     }
  57.  
  58.     $args = array_merge( $args, $_args );
  59.  
  60.  
  61.     $query = new WP_Query( $args );
  62.  
  63.     // loop the videos
  64.  
  65.     if( !$query->have_posts() ) {
  66.         return;
  67.     }
  68.  
  69.     $html = '<ul class="owl-carousel carousel-fw fw-carousel"
  70.                     id="%s-carousel"
  71.                     data-columns="6"
  72.                     data-autoplay="yes"
  73.                     data-loop="yes"
  74.                     data-padding="0"
  75.                     data-center-align="yes"
  76.                     data-autoplay-timeout="5000"
  77.                     data-pagination="no"
  78.                     data-arrows="yes"
  79.                     data-items-desktop="2"
  80.                     data-items-desktop-small="1"
  81.                     data-items-tablet="1"
  82.                     data-items-mobile="3">';
  83.  
  84.     $html = sprintf( $html, $category );
  85.  
  86.     while( $query->have_posts() ) {
  87.  
  88.         $query->the_post();
  89.  
  90.         // set video object
  91.         $video = new gstaadpluginVideo( get_the_ID() );
  92.  
  93.         // get image
  94.         $image = $video->getThumbnail();
  95.  
  96.         // get description
  97.         $description = $video->getDescription( 'short' );
  98.         if( strlen( $description ) > 0 ) {
  99.             $description = sprintf(
  100.                 '<span>%s</span>',
  101.                 $video->getDescription( 'short' )
  102.             );
  103.         }else {
  104.             $description = '<div class="no-description"></div>';
  105.         }
  106.  
  107.         // get list of categories without links as the container itself is already linked
  108.         $categories = $video->getCategoryList( false );
  109.  
  110.         // set up item
  111.         $item =
  112.             '<li class="item match-height">
  113.                 <!-- start news items -->
  114.                 <a href="%1$s" title="%2$s" class="news-items">
  115.                     <!-- start news media -->
  116.                     <span class="news-media">
  117.                         <span class="media-box">
  118.                             <img src="%3$s" alt="%2$s">
  119.                             <span class="ico-play"><i class="fa fa-play-circle-o"></i></span>
  120.                         </span>
  121.                         <span class="news-caption">
  122.                             <span>%4$s</span>
  123.                             <strong>%2$s</strong>
  124.                         </span>
  125.                     </span>
  126.                     <!-- end news media -->
  127.                     <!-- start news content -->
  128.                     <span class="news-content">
  129.                         %5$s
  130.                     </span>
  131.                     <!-- end news content -->
  132.                 </a>
  133.                 <!-- end news items -->
  134.             </li>';
  135.  
  136.         $item = sprintf(
  137.             $item,
  138.             get_permalink(),
  139.             get_the_title(),
  140.             $image,
  141.             $categories,
  142.             $description
  143.         );
  144.  
  145.         $html .= $item;
  146.     }
  147.  
  148.     $html .= '</ul>';
  149.  
  150.     wp_reset_postdata();
  151.  
  152.     return $html;
  153. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top