0

私のウェブサイトに投稿のプレビューを表示するために、PHP を使用して通常の wordpress.com ブログの RSS フィードを解析しています。

タイトル、説明、発行日が正しく表示されます。しかし、各投稿の画像も表示したいと思います。フィードの URL を開くと、「メディア ファイルへのリンク」を含むチャートが表示されますが、それらのリンクにアクセスする方法がわかりません。

何か提案はありますか?

これは私が使用しているコードです:

<?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>  

助けてくれてどうもありがとう

4

1 に答える 1

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、コンテンツを取得できるようにします。

于 2012-12-17T22:27:59.037 に答える