Archive

Posts Tagged ‘Shortcode’
addresshandbook

WordPress: Embed Youtube Feed With a Simple Shortcode

August 13th, 2010 35 comments

UPDATE: Looking for more functionality and an easier installation method?

Check out my WordPress plugin: Youtube Feeder

It's based on this code and has a LOT more features


WordPress shortcodes are great. They let you perform complex operations or display dynamic content with just a tiny bit of text in any page or post.

I recently needed a way to embed the most recent videos from a Youtube channel (very dynamic information) in a WordPress page, so I decided to write a shortcode for it.

The code is actually pretty simple. Just add the following to your theme's functions.php file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function youtube_feed_shortcode($atts)
{
    // Defaults:
    extract(shortcode_atts(array(
            'user' => 'flamadiddle86', // youtube user
            'limit' => 5, // maximum number of videos
            'height' => 385, // video height
            'width' => 480 // video width
        ), $atts));
    $data = @json_decode(file_get_contents('http://gdata.youtube.com/feeds/api/users/'.$user.'/uploads?alt=json'), TRUE);
    $counter = 0;
    $content = '<div class="youtubefeed">';
    foreach($data['feed']['entry'] as $vid)
    {
        $url = $vid['media$group']['media$content'][0]['url'];
        $title = $vid['title']['$t'];
        $ycontent = $vid['content']['$t'];
        $content.= '<object width="'.$width.'" height="'.$height.'">'.
            '<param name="movie" value="'.$url.'"></param>'.
            '<param name="allowFullScreen" value="true"></param>'.
            '<param name="allowscriptaccess" value="always"></param>'.
            '<embed src="'.$url.'" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="'.$width.'" height="'.$height.'"></embed></object>'.
            '<div class="youtubetitle">'.$title.'</div>'.
            '<div class="youtubecontent">'.$ycontent.'</div>'."\n";
        $counter++;
        if($counter == $limit)
        {
            break;
        }
    }
    $content .= '</div>';
    return $content;
}

add_shortcode('youtubefeed', 'youtube_feed_shortcode');

And it couldn't be easier to use. The videos you see below were embedded simply by putting this code in the post:

1
[youtubefeed]

Read more...

e-mail
feed
report