Utiliser WordPress 4.4.2 (dernière version au moment de l'écriture)
J'essaie d'utiliser le shortcode [video] pour afficher une vidéo sur mon site. Si je fournis une URL se terminant par le filename.mp4
, cela fonctionne bien:
[video src="http://example.com/filename.mp4"]
mais lorsque j'ajoute un paramètre de chaîne de requête à la fin de l'URL, il refuse d'afficher le lecteur vidéo. Au lieu de cela, il me montre simplement un lien vers l'URL:
[video src="http://example.com/filename.mp4?type=0"]
J'ai essayé d'utiliser l'attribut mp4
, et le résultat est identique.
Comment obtenir le shortcode [video] autorisant les paramètres de chaîne de requête dans les attributs src
ou mp4
?
Vous avez deux options.
Soit vous filtrez vos extensions vidéo valides comme recommandé par @birgire.
Je me souviens d'un problème similaire pour le shortcode audio ici .
Là, j'ai trouvé une solution de contournement en autorisant l'extension audio vide .
Vous pouvez essayer quelque chose de similaire avec les extensions vidéo. Voici un plugin de démonstration:
/** * Allow the empty video extension to support GET parameters */ add_filter( 'wp_video_extensions', function( $ext ) { $ext[] = ''; return $ext; } );
Vous devez ensuite restreindre cela au besoin, par ex. de la même manière que je l'ai fait avec le shortcode audio.
J'ai cherché les tickets de trac et trouvé celui-ci # 30377 sur lequel on travaille.
Ou filtrez le shortcode complet selon vos besoins avec le filtre wp_video_shortcode
. Par exemple. ajoutez un autre attribut au shortcode appelé type et modifiez le résultat selon vos besoins.
function my_video_shortcode($output, $atts, $video, $post_id, $library ) {
/**
* @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.
*/
}
Source: https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-includes/media.php#L2369
Je me souviens d'un problème similaire pour le shortcode audio ici .
Là, j'ai trouvé une solution de contournement en autorisant l'extension audio vide .
Vous pouvez essayer quelque chose de similaire avec les extensions vidéo. Voici un plugin de démonstration:
<?php
/**
* Plugin Name: GET Parameters In The Video Shortcode
* Description: Allow video files with GET parameters in the video shortcode [video]
* Author: Birgir Erlendsson (birgire)
* Plugin URI: https://wordpress.stackexchange.com/a/220573/26350
* Version: 1.0.0
*/
add_filter( 'wp_video_shortcode_override', function( $html, $atts )
{
add_filter( 'wp_video_extensions', 'wpse_video_extensions' );
return $html;
}, 10, 2 );
function wpse_video_extensions( $ext )
{
remove_filter( current_filter(), __FUNCTION__ );
$ext[] = '';
return $ext;
}
Vous devez ensuite restreindre cela au besoin, par ex. de la même manière que je l'ai fait avec le shortcode audio.
J'ai cherché les tickets de trac et trouvé celui-ci # 30377 sur lequel on travaille.