我正在研究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(之前出现过)。
帮助!
答案 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>';