フォーラム

RSSを使って他ブログを新着順に並べる (5 件の投稿)

  1. Dean-toto
    メンバー
    3 ヶ月前の投稿 #

    http://ja.forums.wordpress.org/topic/1887?replies=5
    「複数サイトのRSSを新着順まとめて表示するプラグイン 」を参考にhome.phpへ組み込んでみました。
    ソースは参考サイトのそのままで、RSSのURLを変更しただけです。
    テスト的に、各社のブログのフィードURLを書いてみました。
    上手く表示できたと思ったのですが、ココログが表示されません。

    アメブロ、Livedoor、YAHOOのRSSは取れ表示されます。

    ココログは特殊なんでしょうか?

    ちなみに、ココログのいくつかのRSSのURLを見てみたのですが
    http://rss.rssad.jp/rss/nifty/*********?rss
    http://rss.rssad.jp/rss/nifty/*********
    http://*********.cocolog-nifty.com/blog/index.rdf
    と違う表示をする場合が有ります。
    一応全てのURLを指定してみましたが表示されませんでした。
    どなたか、参考意見や解決策などをお願いいたします。

  2. masaru
    メンバー
    3 ヶ月前の投稿 #

    解決策じゃないですが・・・。

    telnetで

    http://rss.rssad.jp/rss/nifty/*********?rss
    http://rss.rssad.jp/rss/nifty/*********
    http://*********.cocolog-nifty.com/blog/index.rdf

    アクセスしてみましたが、「現在システムメンテナンス中です。」と帰ってきますね。
    #RSSリーダーで見ると正常

    他Blogで試してみたらRSSの内容が帰ってきましたので、
    ココログが何か規制しているのかもしれませんね。

    詳しい人のレスに期待。

  3. Dean-toto
    メンバー
    3 ヶ月前の投稿 #

    to masaru様

    レスありがとうございます。

    >現在システムメンテナンス中です。

    そうですかっ!
    メンテ中だったら見られなくても仕方ないですが・・・
    8/19 18:00PM現在、ココログのブログは表示されません・・・。
    どちらにしても、ココログ側の問題なのでしょうか?

    引き続きご意見お待ちしております。

  4. Dean-toto
    メンバー
    3 ヶ月前の投稿 #

    ソースコードを読み、RSSを取得するための仕組みを(今更ながら)勉強しました。
    そこでココログの場合、fetch_rss($uri)で取得できているのかどうか?どんな値が入っているのかどうか?を調べてみました。

    まず素材として。ブログの女王(簡単にたどり着いたので)真●●をりさんのブログ:RSSで実験しました。

    1.まずココログHELPの解説では、RSSのURIは
    http://example.cocolog-nifty.com/blog/index.rdf
    ブログURLの後ろにindex.rdf をつけたものと解説されています。
    (ココログHELP) http://support.cocolog-nifty.com/howto/2006/03/rss_0139.html

    ですが、真●●をりさんのRSSフィードのURIは
    http://rss.rssad.jp/rss/nifty/manabe ・・・(1)
    と出てきます。
    当人のブログURL+index.rdf では、フィードの内容が見られませんでした。
    と言う事で(1)を設定してみます。

    2.新着を表示するソースコードの要所にecho で適当な項目内用を表示するように追加します。

    $rss_arr = array(
     'http://rss.rssad.jp/rss/nifty/manabe' // ココログ
    );

    //表示件数
    $num = 20;

    foreach($rss_arr as $uri)
    {
    $rss = fetch_rss($uri);

    $title = $rss->channel['title'];
    $link = $rss->channel['link'];

    // デバッグ用に表示(A)
    echo "Title=".$title."";
    echo "link=".$link."";
    $tcnt=0;

    foreach($rss->items as $item)
    {
    $item_title = $item['title'];
    $item_link = $item['link'];
    $item_date = $item['pubdate'];
    $out_item_date = date('Y年n月j日', strtotime($item_date));

    // デバッグ用に表示(B)
    $tcnt++;
    echo "item_title".$ycnt."=".$item_title." / ".$out_item_date."";

    //これより以下は元ソースのままです。
    $out_item = '<dt>
    ' . $item_title . '
    </dt>
    <dd style="font-size:77%;">
    ' . $title . '
    </dd>
    <dd style="font-size:77%;">' . $out_item_date . '</dd>';

    $unix_time = date('U', strtotime($item_date));
    $item_arr[$unix_time] = $out_item;
    }
    }

    //ソート
    krsort($item_arr);

    //出力
    echo '<h2>新着' . $num . '件(RSSを使って外部ブログを取得のテスト)</h2>';

    以下省略・・・

    こんな感じで・・・。

    3.結果

    Title=眞鍋かをりのココだけの話 powered by ココログ
    link=http://manabekawori.cocolog-nifty.com/blog/
    item_title1=夢をありがとう / 1970年1月1日
    item_title2=四国の連峰そびらにおいて / 1970年1月1日
    item_title3=地震コワい / 1970年1月1日
    item_title4=プロアクティ部 / 1970年1月1日
    item_title5=ありがとう / 1970年1月1日
    item_title6=羊蹄山 / 1970年1月1日
    item_title7=ポスター掲載の件 / 1970年1月1日
    item_title8=THE ICE / 1970年1月1日
    item_title9=オシリーナを超えた!魅惑の完熟ボディ生尻セクシー / 1970年1月1日
    item_title10=うなぎ犬 / 1970年1月1日
    item_title11=に、に、妊娠!? / 1970年1月1日
    item_title12=日テレのうめ / 1970年1月1日
    item_title13=祐天寺 ル・サンク / 1970年1月1日
    item_title14=ネルソン / 1970年1月1日
    item_title15=昔話 / 1970年1月1日

    日付がおかしい事が解りました。
    記事のタイトルは間違いなく新着タイトルです。
    表示されないのではなく、新着の上位にソートされないわけですね。

    アメブロ、YAHOO、Livedoor が正しく表示されることを考えると、ココログだけ日付の取得の仕方が違うのでしょうか?

  5. Dean-toto
    メンバー
    3 ヶ月前の投稿 #

    追記です。

    ふと気づきました。
    日付だけの問題ではないような気がします。
    先の投稿でのテストでは、1つのブログRSSだけを素材にしたので、日付が古くても、新着が表示されるはず・・・

    ですが、実際の結果は・・・

    item_title=祐天寺 ル・サンク / 1970年1月1日
    item_title=ネルソン / 1970年1月1日
    item_title=昔話 / 1970年1月1日

    新着20件(RSSを使って外部ブログを取得のテスト)

    で終わっていました。
    一覧表示が出ていません。

    この事から何か解る事は無いでしょうか?

    (伏字をする必要があるのか解りませんでしたが、意味を成していませんでしたね)

返信

ログイン しなければ投稿できません。

About this Topic

Tags