Beispiel #1
1
 /**
  * Returns the featured video html, ready to echo.
  *
  * @since 1.0.0
  *
  * @param int $post_id
  * @param string|array $size
  */
 public function get_the_post_video($post_id = null, $size = null)
 {
     $post_id = null === $post_id ? get_the_ID() : $post_id;
     if (!has_post_video($post_id)) {
         return '';
     }
     $meta = get_post_meta($post_id, '_fvp_video', true);
     $options = get_option('fvp-settings');
     // Extract default and default->general options for easy access.
     $defaults = !empty($options['default_args']) ? $options['default_args'] : array();
     $general = !empty($defaults['general']) ? $defaults['general'] : array();
     // Autoplay option. Suppressed when viewing admin.
     $general['autoplay'] = (defined('DOING_AJAX') && DOING_AJAX || !is_admin()) && !empty($general['autoplay']) && $general['autoplay'] ? '1' : null;
     // Responsive scaling option. Not used when viewing the admin screen.
     $responsive = !empty($options['sizing']['responsive']) && $options['sizing']['responsive'] && (defined('DOING_AJAX') && DOING_AJAX || !is_admin());
     // Alignment option
     $align = !empty($options['alignment']) ? $options['alignment'] : 'center';
     $args = array('id' => !empty($meta['id']) ? $meta['id'] : null, 'provider' => !empty($meta['provider']) ? $meta['provider'] : null);
     $provider = $args['provider'];
     switch ($provider) {
         case 'local':
             $img_meta = wp_get_attachment_metadata($meta['id']);
             $size = $this->get_size($size, array('width' => !empty($img_meta['width']) ? $img_meta['width'] : null, 'height' => !empty($img_meta['height']) ? $img_meta['height'] : null));
             $atts = array('src' => wp_get_attachment_url($meta['id']), 'autoplay' => $general['autoplay'] ? 'on' : null, 'loop' => !empty($general['loop']) ? 'on' : null, 'width' => $responsive ? $size['width'] * 8 : $size['width'], 'height' => $responsive ? $size['height'] * 8 : $size['height']);
             $args = array_merge($args, $atts);
             $embed = wp_video_shortcode($atts);
             $embed = apply_filters('fvp-local', $embed, $args);
             break;
         case 'raw':
             $embed = $meta['full'];
             break;
         default:
             $atts = array_merge($general, $this->get_size($size), !empty($defaults[$provider]) ? $defaults[$provider] : array(), isset($meta['parameters']) ? $meta['parameters'] : array());
             $args = array_merge($args, $atts);
             $embed = $this->oembed->get_html($meta['full'], $atts, $provider);
             $embed = apply_filters('fvp-oembed', $embed, $args);
             break;
     }
     if (empty($embed)) {
         return '';
     }
     $classnames = array('featured-video-plus' => true, 'post-thumbnail' => true, 'fvp-responsive' => $responsive);
     $classnames['fvp-' . $provider] = !empty($provider);
     $classnames['fvp-' . $align] = !empty($align);
     $embed = sprintf("<!-- Featured Video Plus v%s -->\n<div%s>%s</div>\n\n", FVP_VERSION, FVP_HTML::class_names($classnames, true, true), $embed);
     return $embed;
 }