将最新的YouTube视频嵌入到wordpress中

时间:2010-06-29 14:45:06

标签: php wordpress

我正在研究WP主题,这是我最后检查的工作,并且已经停止了。也许它有点小,但它现在让我疯了。

我正在使用youtube用户名并抓取最新视频并嵌入到页面中。似乎很简单,但我可能会错误地攻击它。

这是我的代码(任何建议?):

                        <?php // Get YOUTUBE FEED
                    include_once(ABSPATH . WPINC . '/feed.php');

                    // Get a SimplePie feed object from the specified feed source. - YOUTUBE FEED ADDRESS
                    $youtube = fetch_feed('http://gdata.youtube.com/feeds/api/users/USERNAME/uploads');
                    if (!is_wp_error( $youtube ) ) { // Checks that the object is created correctly
                        // Figure out how many total items there are, but limit it to 1.
                        $maxitemsy = $youtube->get_item_quantity(1);

                        // Build an array of all the items, starting with element 0 (first element).
                        $rss_itemsy = $youtube->get_items(0, $maxitemsy);
                    }
                    ?>
                    <h3>YouTube</h3>
                    <ul>
                        <?php if ($maxitemsy == 0) echo '<li>No Video? Check out our <a href="http://www.youtube.com/USERNAME" >YouTube Channel</a></li>';
                        else
                            // Loop through each feed item and display each item as a hyperlink.
                            foreach ( $rss_itemsy as $item ) {
                            $link = $item->get_item_tags('http://search.yahoo.com/mrss/', 'player');
                            $useThis = $link[0]['attribs']['']['url'];
                            ?>
                            <li>
                                <object style="height: 172.5px; width: 230px">
                                    <param name="movie" value="http://www.youtube.com/v/<?php echo getYTid($useThis);?>">
                                    <param name="allowFullScreen" value="true">
                                    <param name="allowScriptAccess" value="always">
                                    <embed src="http://www.youtube.com/v/<?php echo getYTid($useThis);?>" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="230" height="172.5">
                                </object>
                            </li>
                            <li>
                                <?php echo $item->get_content();?>
                            </li>
                        <?php } ?>
                    </ul>

无论如何,我不断收到“没有视频,查看我们的...”输出而不是youtube embed(之前出现过)。

帮助!

3 个答案:

答案 0 :(得分:0)

您是否尝试过$ youtube和$ maxitemsy的var_dump?我猜测fetch_feed调用出了问题,而且你的$ maxitemsy要么是0还是未定义。

答案 1 :(得分:0)

我知道这发生了大约一年,但我找到了使用问题代码的解决方案,所以我想分享它。

我认为问题在于您检索读取rss的数据的方式。

使用get_item_data for

时,应该替换该行
$link = $item->get_item_tags('http://search.yahoo.com/mrss/', 'group');
$media_content = $link[0]['child']['http://search.yahoo.com/mrss/']['content'];
$youtubeFullUrl = $media_content[0]['attribs']['']['url'];

并使用$ youtubeFullUrl可以嵌入对象。这将有“http://youtube.com/v/ ....”的东西。

答案 2 :(得分:-1)

$videoId = $item->get_item_tags('http://www.youtube.com/xml/schemas/2015', 'videoId');

echo '<iframe width="425" height="239" src="https://www.youtube.com/embed/' .
     $videoId[0]["data"] . '" frameborder="0" allowfullscreen></iframe>';