Construit la sortie du shortcode vidéo.

Description

Ceci implémente la fonctionnalité du shortcode Vidéo pour afficher les mp4 de WordPress dans un article.

Paramètres

$attr

(tableau)(Obligatoire)Attributs du shortcode.

  • 'src'
    (chaîne de caractères) URL vers la source du fichier vidéo. Vide par défaut.
  • 'hauteur'
    (int) Hauteur de l'incorporation de la vidéo en pixels. La valeur par défaut est de 360.
  • 'largeur'
    (int) Largeur de l'incorporation de la vidéo en pixels. Par défaut, $content_width ou 640.
  • 'poster'
    (chaîne de caractères) L'attribut "poster" de l'élément pour l'élément . Vide par défaut.
  • "boucle
    (chaîne de caractères) L'attribut 'loop' de l'élément pour l'élément . Vide par défaut.
  • 'autoplay' (lecture automatique)
    (chaîne de caractères) L'attribut "autoplay" de la balise élément. Vide par défaut.
  • 'preload' (préchargement)
    (chaîne de caractères) L'attribut "preload" de l'élément pour l'élément . Par défaut, 'metadata'.
  • classe
    (chaîne de caractères) L'attribut 'class' de l'élément de l'élément. La valeur par défaut est 'wp-video-shortcode'.
$content

(chaîne de caractères)(Facultatif)Contenu du code court.

Valeur par défaut : ''

Retourner

(chaîne de caractères|vide) Contenu HTML permettant d'afficher la vidéo.

Source

Fichier : wp-includes/media.php

functionwp_video_shortcode($attr,$content=''){global$content_width;$post_id=get_post()?get_the_ID():0;static$instance=0;$instance++;/**
	 * Filters the default video shortcode output.
	 *
	 * If the filtered output isn't empty, it will be used instead of generating
	 * the default video template.
	 *
	 * @since 3.6.0
	 *
	 * @see wp_video_shortcode()
	 *
	 * @param string $html     Empty variable to be replaced with shortcode markup.
	 * @param array  $attr     Attributes of the shortcode. @see wp_video_shortcode()
	 * @param string $content  Video shortcode content.
	 * @param int    $instance Unique numeric ID of this video shortcode instance.
	 */$override=apply_filters('wp_video_shortcode_override','',$attr,$content,$instance);if(''!==$override){return$override;}$video=null;$default_types=wp_get_video_extensions();$defaults_atts=array('src'=>'','poster'=>'','loop'=>'','autoplay'=>'','preload'=>'metadata','width'=>640,'height'=>360,'class'=>'wp-video-shortcode',);foreach($default_typesas$type){$defaults_atts[$type]='';}$atts=shortcode_atts($defaults_atts,$attr,'video');if(is_admin()){// Shrink the video so it isn't huge in the admin.if($atts['width']>$defaults_atts['width']){$atts['height']=round(($atts['height']*$defaults_atts['width'])/$atts['width']);$atts['width']=$defaults_atts['width'];}}else{// If the video is bigger than the theme.if(!empty($content_width)&&$atts['width']>$content_width){$atts['height']=round(($atts['height']*$content_width)/$atts['width']);$atts['width']=$content_width;}}$is_vimeo=false;$is_youtube=false;$yt_pattern='#^https?://(?:www.)?(?:youtube.com/watch|youtu.be/)#';$vimeo_pattern='#^https?://(.+.)?vimeo.com/.*#';$primary=false;if(!empty($atts['src'])){$is_vimeo=(preg_match($vimeo_pattern,$atts['src']));$is_youtube=(preg_match($yt_pattern,$atts['src']));if(!$is_youtube&&!$is_vimeo){$type=wp_check_filetype($atts['src'],wp_get_mime_types());if(!in_array(strtolower($type['ext']),$default_types,true)){returnsprintf('%s',esc_url($atts['src']),esc_html($atts['src']));}}if($is_vimeo){wp_enqueue_script('mediaelement-vimeo');}$primary=true;array_unshift($default_types,'src');}else{foreach($default_typesas$ext){if(!empty($atts[$ext])){$type=wp_check_filetype($atts[$ext],wp_get_mime_types());if(strtolower($type['ext'])===$ext){$primary=true;}}}}if(!$primary){$videos=get_attached_media('video',$post_id);if(empty($videos)){return;}$video=reset($videos);$atts['src']=wp_get_attachment_url($video->ID);if(empty($atts['src'])){return;}array_unshift($default_types,'src');}/**
	 * Filters the media library used for the video shortcode.
	 *
	 * @since 3.6.0
	 *
	 * @param string $library Media library used for the video shortcode.
	 */$library=apply_filters('wp_video_shortcode_library','mediaelement');if('mediaelement'===$library&&did_action('init')){wp_enqueue_style('wp-mediaelement');wp_enqueue_script('wp-mediaelement');wp_enqueue_script('mediaelement-vimeo');}// MediaElement.js has issues with some URL formats for Vimeo and YouTube,// so update the URL to prevent the ME.js player from breaking.if('mediaelement'===$library){if($is_youtube){// Remove `feature` query arg and force SSL - see #40866.$atts['src']=remove_query_arg('feature',$atts['src']);$atts['src']=set_url_scheme($atts['src'],'https');}elseif($is_vimeo){// Remove all query arguments and force SSL - see #40866.$parsed_vimeo_url=wp_parse_url($atts['src']);$vimeo_src='https://'.$parsed_vimeo_url['host'].$parsed_vimeo_url['path'];// Add loop param for mejs bug - see #40977, not needed after #39686.$loop=$atts['loop']?'1':'0';$atts['src']=add_query_arg('loop',$loop,$vimeo_src);}}/**
	 * Filters the class attribute for the video shortcode output container.
	 *
	 * @since 3.6.0
	 * @since 4.9.0 The `$atts` parameter was added.
	 *
	 * @param string $class CSS class or list of space-separated classes.
	 * @param array  $atts  Array of video shortcode attributes.
	 */$atts['class']=apply_filters('wp_video_shortcode_class',$atts['class'],$atts);$html_atts=array('class'=>$atts['class'],'id'=>sprintf('video-%d-%d',$post_id,$instance),'width'=>absint($atts['width']),'height'=>absint($atts['height']),'poster'=>esc_url($atts['poster']),'loop'=>wp_validate_boolean($atts['loop']),'autoplay'=>wp_validate_boolean($atts['autoplay']),'preload'=>$atts['preload'],);// These ones should just be omitted altogether if they are blank.foreach(array('poster','loop','autoplay','preload')as$a){if(empty($html_atts[$a])){unset($html_atts[$a]);}}$attr_strings=array();foreach($html_attsas$k=>$v){$attr_strings[]=$k.'="'.esc_attr($v).'"';}$html='';if('mediaelement'===$library&&1===$instance){$html.="n";}$html.=sprintf(',implode(' ',$attr_strings));$fileurl='';$source='';foreach($default_typesas$fallback){if(!empty($atts[$fallback])){if(empty($fileurl)){$fileurl=$atts[$fallback];}if('src'===$fallback&&$is_youtube){$type=array('type'=>'video/youtube');}elseif('src'===$fallback&&$is_vimeo){$type=array('type'=>'video/vimeo');}else{$type=wp_check_filetype($atts[$fallback],wp_get_mime_types());}$url=add_query_arg('_',$instance,$atts[$fallback]);$html.=sprintf($source,$type['type'],esc_url($url));}}if(!empty($content)){if(false!==strpos($content,"n")){$content=str_replace(array("rn","n","t"),'',$content);}$html.=trim($content);}if('mediaelement'===$library){$html.=wp_mediaelement_fallback($fileurl);}$html.='';$width_rule='';if(!empty($atts['width'])){$width_rule=sprintf('width: %dpx;',$atts['width']);}$output=sprintf('%s',$width_rule,$html);/**
	 * Filters the output of the video shortcode.
	 *
	 * @since 3.6.0
	 *
	 * @param string $output  Video shortcode HTML output.
	 * @param array  $atts    Array of video shortcode attributes.
	 * @param string $video   Video file.
	 * @param int    $post_id Post ID.
	 * @param string $library Media library used for the video shortcode.
	 */returnapply_filters('wp_video_shortcode',$output,$atts,$video,$post_id,$library);}

Related

Utilise

Utilisations Description
wp-includes/http.php : wp_parse_url()

Un wrapper pour la fonction parse_url() de PHP qui gère la cohérence des valeurs de retour entre les différentes versions de PHP.

wp-includes/functions.php : wp_validate_boolean()

Filtrer/valider une variable comme un booléen.

wp-includes/formatting.php : esc_url()

Vérifie et nettoie une URL.

wp-includes/formatting.php : esc_html()

Échappement pour les blocs HTML.

wp-includes/formatting.php : esc_attr()

Échappement pour les attributs HTML.

wp-includes/load.php : is_admin()

Détermine si la requête actuelle concerne une page d'interface administrative.

wp-includes/functions.wp-scripts.php : wp_enqueue_script()

Mise en file d'attente d'un script.

wp-includes/functions.php : absint()

Convertit une valeur en un nombre entier non négatif.

wp-includes/functions.php : wp_check_filetype()

Récupère le type de fichier à partir du nom du fichier.

wp-includes/functions.php : wp_get_mime_types()

Récupère la liste des types mime et des extensions de fichiers.

wp-includes/functions.php : remove_query_arg()

Supprime un ou plusieurs éléments d'une chaîne de requête.

wp-includes/functions.php : add_query_arg()

Récupère une chaîne de requête d'URL modifiée.

wp-includes/link-template.php : set_url_scheme()

Définit le schéma d'une URL.

wp-includes/functions.wp-styles.php : wp_enqueue_style()

Mise en file d'attente d'une feuille de style CSS.

wp-includes/shortcodes.php : shortcode_atts()

Combine les attributs de l'utilisateur avec les attributs connus et remplit les valeurs par défaut si nécessaire.

wp-includes/plugin.php : apply_filters()

Appelle les fonctions de rappel qui ont été ajoutées à un crochet de filtre.

wp-includes/plugin.php : did_action()

Récupérer le nombre de fois qu'une action est déclenchée.

wp-includes/post-template.php : get_the_ID()

Récupère l'identifiant de l'élément actuel dans la boucle WordPress.

wp-includes/media.php : get_attached_media()

Récupère les médias attachés au post passé.

wp-includes/media.php : wp_get_video_extensions()

Renvoie une liste filtrée des formats vidéo pris en charge.

wp-includes/media.php : wp_video_shortcode_override

Filtre la sortie par défaut du shortcode vidéo.

wp-includes/media.php : wp_video_shortcode_library

Filtre la bibliothèque de médias utilisée pour le shortcode vidéo.

wp-includes/media.php : wp_video_shortcode_class

Filtre l'attribut de classe pour le conteneur de sortie du shortcode vidéo.

wp-includes/media.php : wp_video_shortcode

Filtre la sortie du shortcode vidéo.

wp-includes/media.php : wp_mediaelement_fallback()

Fournit un fallback No-JS Flash en dernier recours pour l'audio / vidéo.

wp-includes/post.php : wp_get_attachment_url()

Récupère l'URL d'une pièce jointe.

wp-includes/post.php : get_post()

Récupère les données du post étant donné un ID de post ou un objet post.

Utilisé par

Utilisé par Description
wp-includes/widgets/class-wp-widget-media-video.php : WP_Widget_Media_Video::render_media()

Rendre le média sur le frontend.

wp-admin/includes/media.php : edit_form_image_editor()

Affiche l'image et l'éditeur dans l'éditeur de post.

wp-includes/post-template.php : prepend_attachment()

Enveloppe la pièce jointe dans une balise de paragraphe avant le contenu.

Changelog

Version Description
3.6.0 Introduit.