2012-12-17 52 views
0

我使用PHP解析常規wordpress.com博客的RSS源,以便在我的網站上顯示帖子的預覽。顯示來自wordpress rss feed的媒體文件

它正確顯示:標題,說明和發佈日期。但我想顯示每個帖子的圖像。如果我打開Feed的網址,會有一個包含「媒體文件鏈接」的圖表,但我不知道如何訪問這些鏈接。

你有什麼建議嗎?

這是我使用的代碼:

<?php 

      $xml=("http://testmustard.wordpress.com/feed/"); 

      $xmlDoc = new DOMDocument(); 

      $xmlDoc->load($xml); 

      $items=$xmlDoc->getElementsByTagName('item'); 
      $max_items= 15; 

     ?>  

     <?php foreach($items as $i => $item):?> 


     <?php 
      if($i>=$max_items) break; 

      $title = $item->getElementsByTagName("title")->item(0)->nodeValue; 
      $description = $item->getElementsByTagName("description")->item(0)->nodeValue; 
      $data = $item->getElementsByTagName("pubDate")->item(0)->nodeValue; 
     ?> 
      <div class="posts"> 
       <div class="rssentry"> 
        <h2><?php echo $title?></h2> 
        <div class="rsscontent"><?php echo html_entity_decode($description)?></div> 
        <div class="metadata"><?php echo $data?></div> 
       </div>    
      </div> 
     <?php endforeach;?> 
     </div> 

非常感謝您的幫助

回答

2

PHP

<?php 

$maxItems = 15; 

$Document = new DOMDocument(); 
$Document->load('http://testmustard.wordpress.com/feed/'); 

$NodeList = $Document->getElementsByTagName('item'); 

$i = 0; 
foreach ($NodeList as $Node) { 
    if ($i++ >= $maxItems) { 
     break; 
    } 

    $media = $Node->getElementsByTagNameNS('http://search.yahoo.com/mrss/', 'content'); 
    if ($media->length > 0) { 
     $imageUrl = $media->item(0)->getAttribute('url'); 
     echo "$imageUrl\n"; 
    } else { 
     echo "No media:content\n"; 
    } 
} 

的關鍵是getElementsByTagNameNS。它讓你使用media命名空間,這樣你就可以攔截內容。

+0

該RSS提供它,但我不知道如何訪問它 – lilymz

+0

的媒體:內容 – lilymz

+0

@lilymz我更新了我的答案。 –