Etendre les fonctionnalités videos de WordPress 2.9.x

Pourquoi faire ?

La version 2.9.X de Wordpress permet par simple insertion de l'url dans le texte de jouer automatiquement la video. Térrible avec YouTube, DailyMotion et consort, le problème apparait quand on veut jouer un fichier http://quelque-part/fichier.flv.

La raison est que les providers de vidéo disposent de l'API 'oEmbed', alors que votre fichier brut ne contient pas ces informations, et n'a aucun service pour les fournir.

Comment

Wordpress a bien fait les choses, et permet de sursoir à l'absence d'API oEmbed. En gros, le filtre permet d'encapsuler le fichier à reconnaitre dans une balise prédéfinie.

Ainsi, ce petit plugin permet de prendre en compte ce cas de figure. Ainsi vous pouvez par exemple uploader un fichier flv dans votre Médiathèque WordPress, et par simple insertion du lien (sans les attributs < a href="...) voir apparaitre la vidéo prête à être jouée sur votre page. Les extensions reconnues sont flv, swf, aac, mp4, mp3, gif, jpg, jpeg et png.

Extension du code

Vous pourrez ajouter d'autres extensions vidéos en vous basant sur le code trés simple de ce plugin

Le code

					/**
					 * @package morevideoembed
					 * @author Fx NION
					 * @version 1.0.0
					 */
					/*
					Plugin Name: morevideoembed
					Plugin URI: http://fxnion.free.fr/#
					Description: Using the 'oEmbed' style for WP 2.9.X and allow to play videos somewhere else than youtube, dailymotion, etc. FLV, MP4, MP3, AAC, JPG, PNG, GIF, SWF are supported, the url must end with the corresponding file format. Usefull for files stored somewhere in the net and that don't have oEmbed API available.
					Author: Fx NION
					Version: 1.0.0
					Author URI: http://fxnion.free.fr/
					*/
					function wp_embed_handler_morevideoembed_flv( $matches, $attr, $url, $rawattr ) {
						// If the user supplied a fixed width AND height, use it
						if ( !empty($rawattr['width']) && !empty($rawattr['height']) ) {
							$width  = (int) $rawattr['width'];
							$height = (int) $rawattr['height'];
						} else {
							list( $width, $height ) = wp_expand_dimensions( 425, 344, $attr['width'], $attr['height'] );
						}
						$player_location = get_option('siteurl').'/wp-content/plugins/morevideoembed/player.swf';
						
						return apply_filters( 'morevideoembed_flv', 
											  '', $matches, $attr, $url, $rawattr );
					}

					//FLV, MP4, MP3, AAC, JPG, PNG, GIF, SWF
					wp_embed_register_handler( 'morevideoembed_flv', 
											   '#http://(.*?.flv$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_mp4', 
											   '#http://(.*?.mp4$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_aac', 
											   '#http://(.*?.aac$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_swf', 
											   '#http://(.*?.swf$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );

					wp_embed_register_handler( 'morevideoembed_png', 
											   '#http://(.*?.png$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_gif', 
											   '#http://(.*?.gif$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_jpg', 
											   '#http://(.*?.jpg$)#i', 
											   'wp_embed_handler_morevideoembed_flv' );
											   
					wp_embed_register_handler( 'morevideoembed_jpeg', 
											   '#http://(.*?.jpeg$)#i', 
											   'wp_embed_handler_morevideoembed_flv');
			

Installation

Desarchivez l'archive fournie dans votre repertoire plugin, et sous l'interface d'administration, activez le plugin MoreVideoEmbed

Telechargements

Autres articles


Share