7

In questo articolo andremo a vedere come visualizzare le ultime thumbnail dei video del vostro canale youtube chiaramente linkate al video originale, potete usare fancybox per visualizzarli in un modalbox.

Innanzitutto vi consiglio di dare un’occhiata alla documentazione dell’API di Youtube poi date un’occhiata al codice che segue per un esempio pratico del loro uso su piattaforma WordPress:

/**
 * GET_LAST_VIDEO
 * Interfacciamento alle API di Youtube
 *
 * @param string  $username   Nome utente del canale
 * @param int     $n          Numero di voci
 * @param int     $expire     Validità della cache in secondi
 *
 */

function get_last_video( $username, $n = 5, $expire = 86400 ) {

    // Verifico che i dati non siano già in cache
    if ( false === ( $json_data = get_transient( 'youtube_api_data' ) ) ) {
	
        // Costruisco l'url delle API
        $url = sprintf( 'http://gdata.youtube.com/feeds/api/videos?max-results=%d&alt=json&lr=it&orderby=published&author=%s', $n, $username );
				
        if ( false != ( $json_file = @file_get_contents( $url ) ) ) {
		
            // Decodifo il json
            $json_data = @json_decode( $json_file );
			
            if ( isset( $json_data->feed->entry ) && !empty( $json_data->feed->entry ) ){
				
                // Estraggo solo i dati che mi interessano
                $json_data = $json_data->feed->entry;

                // Salvo i dati in cache
                set_transient( 'youtube_api_data', $json_data, (int) $expire );
				
            } else {	
                return new wp_error( 'youtube_api_error', __('Non ci sono video corrispondenti alla query effettuata') . ' : ' . $url );	
            }	
        } else {
            return new wp_error( 'youtube_api_error', __('Non riesco a raggiungere l\'url dell\'api di youtube') . ' : ' . $url );
        }
    }
		
    $output = ''; // Istanzio l'output
	
    foreach ( $json_data as $video ) {
	
         // Scorporo i parametri dell'url
        parse_str( parse_url( $video->link[0]->href, PHP_URL_QUERY ), $url_query );
		
         // Estraggo l'id del video
         $video_id = $url_query['v'];
		
         // Faccio l'output dei dati
         $output .= "<a href='http://www.youtube.com/embed/$video_id?autoplay=1' class='fancyvideo fancybox.iframe'><img class='youtube_gallery-thumb' src='http://img.youtube.com/vi/$video_id/1.jpg'></a>";
     }
    return $output;
}

if ( !is_wp_error( $youtube_videos = get_last_video( 'programmafoto' ) ) ) {
     echo $youtube_videos;
} else {
     echo $youtube_videos->get_error_message();
}

Aggiungo che per le altre dimensioni delle thumbnail è sufficiente cambiare l’url dell’immagine come segue.

Thumb piccola 1° fotogramma

http://img.youtube.com/vi/$video_id/1.jpg

Thumb piccola default

http://img.youtube.com/vi/$video_id/default.jpg

Thumb media

http://img.youtube.com/vi/$video_id/mqdefault.jpg

Thumb grande

http://img.youtube.com/vi/$video_id/hqdefault.jpg

Thumb enorme

http://img.youtube.com/vi/$video_id/maxresdefault.jpg

  1. Buonasera, io invece non riesco a far comparire le foto accanto agli articoli correlati, prima funzionavano ma è un bel po’ che non compaiono più, con qualsiasi plugin esce il riquadro ma non la foto, spero in un vostro consiglio! Grazie!

    1. Ciao Antonio, ho dato un’occhiata e, anche se non posso esserne sicuro, probabilmente dipende dal tema. La maggior parte dei plugin che visualizza i post correlati usa le post thumbnail del tema per visualizzare un’immagine accanto ai post.
      All’interno della pagina di modifica dei singoli post hai questa finestra ? http://d.pr/i/KjOm

  2. Ciao Alessandro, quello che mi lascia perplesso e che prima si vedevano benissimo, poi ho avuto una serie di problemi perché ho dovuto effettuare il downgrade da 3.5.1 a 3.4, per problemi di editor, e da quella volta alcuni plugin hanno smesso di funzionare, come il link broken checker, prima mi inviava le notifiche se trovava un link “rotto”, adesso non più….cmq farò caso al tuo consiglio, grazie mille per il disturbo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *