Shortcode per YouTube rivisto e migliorato

Uno shortcode per pubblicare un video da YouTube, potendo specificare dimensioni e punto di partenza, mentre nel feed visualizza il suo poster frame.

Questo è un post tecnico di 7 anni fa. Le istruzioni potrebbero non essere più valide.

Ho rimesso mano a uno shortcode di cui vi avevo già scritto e che si è rivelato davvero comodo, quello per l’inserimento di un video di YouTube in un post. Le modifiche che ho apportato rispetto a quello già pubblicato riguardano due aspetti:

  1. la possibilità di far partire il video da un punto preciso;
  2. l’inserimento del poster frame del video se il post viene letto via feed.

Niente di particolarmente complicato, quindi, ma mi pare sempre interessante condividere con voi quanto combino.

La funzione e i suoi parametri

Ecco la funzione modificata:

/**
 * Shortcode to display a Youtube video
 *
 * @example [[youtube id=http://www.youtube.com/watch?v=kC9Ju63Bchk width=460 height=372 hour=1 min=12 sec=23]]
 */
function ubn_youtube($atts) {
	extract(shortcode_atts(array(
		'id' => '',
		'width' => '460',
		'height'=> '372',
		'hour' => 0,
		'min' => 0,
		'sec' => 0
	), $atts));
	$videoid = substr($id, 31);
	if ( !is_feed() ) {
		// Let's convert hours and minutes in seconds
		$start = (($hour*60*60)+($min*60)+$sec);
		$output = '<p><object type="application/x-shockwave-flash" data="http://www.youtube.com/v/' . $videoid . '&amp;hl=it_IT&amp;start=' . $start . '" width="' . $width . '" height="' . $height . '">
					<param name="movie" value="http://www.youtube.com/v/' . $videoid . '&amp;hl=it_IT&amp;start=' . $start . '" />
					<param name="FlashVars" value="playerMode=embedded" />
					<param name="wmode" value="transparent" />
					</object></p>';
	} else {
		$output = '<p><a href="' . get_permalink() . '" title="Fai clic per vedere il video incorporato">
				       <img src="http://img.youtube.com/vi/' . $videoid . '/0.jpg" alt="Video preview" />
				   </a></p>';
	}
	return $output;
}
add_shortcode('youtube', 'ubn_youtube');

La funzione richiede un solo parametro: l’URL della pagina del video. Ad esempio:

[youtube id=http://www.youtube.com/watch?v=kC9Ju63Bchk]

Il video uscirà con una larghezza di 460×372 pixel, iniziando la riproduzione dall’inizio. Se pubblicate i video sempre a una dimensione, modificate i valori direttamente nella funzione.

Se si vogliono personalizzare le dimensioni per un post preciso, inserire:

[youtube id=http://www.youtube.com/watch?v=kC9Ju63Bchk width=460 height=372]

modificandone i valori.

Se si desidera far partire il video da un punto preciso, inserire ad esempio:

[youtube id=http://www.youtube.com/watch?v=kC9Ju63Bchk hour=1 min=15 sec=23]

oppure indicando solo i secondi:

[youtube id=http://www.youtube.com/watch?v=kC9Ju63Bchk sec=45]

Il poster frame nel feed

Per questa modifica, faccio una piccola introduzione. Se inseriamo un video da YouTube in un nostro post, il video non sarà mostrato nel feed risultante, neanche come link alla pagina originale. Si può optare, allora, per l’utilizzo di un plugin specifico o, invece, per l’utilizzo della funzione nel proprio tema che visualizza al posto del video uno dei suoi frame. YouTube, infatti, conserva una serie di immagini tratte dal video come “poster frame” (cioè come anteprime) nella directory http://img.youtube.com/vi/[id-del-video]/ con questi nomi:

  • 0.jpg = un poster frame di dimensioni più generose;
  • 1.jpg ~ 3.jpg = una serie di tre poster frame di dimensioni ridotte

Se l’URL del video è http://www.youtube.com/watch?v=kC9Ju63Bchk, l’URL del file 0.jpg sarà:

http://img.youtube.com/vi/kC9Ju63Bchk/0.jpg

Lo shortcode che ho modificato include questa funzionalità, mostrando nel feed RSS un’immagine, collegata al vostro articolo, al posto del video. Eccovi un esempio di ciò che il mio feed mostra nel Planet di Ubuntu Italia relativamente all’articolo 2012: l’anno delle balle mega galattiche:

Manco a dirlo, l’XHTML risultante è valido per il W3C.

Autore: Aldo Latino

Aldo Latino usa con entusiasmo Linux nella distribuzione Ubuntu, è un appassionato di WordPress e si diletta a fare il blogger. Ha anche una lista dei desideri. Per altre informazioni visita la sua .

Un pensiero riguardo “Shortcode per YouTube rivisto e migliorato”

I commenti sono chiusi