ブログ

  1. トップページ
  2. Tips
  3. [jQuery][PHP]RSSを取得するスクリプトについて覚書

[jQuery][PHP]RSSを取得するスクリプトについて覚書

  • 投稿日:2018/12/12
  • 最終更新:2019/02/05

下記のブログを参考に(2015年の記事だけど使えました)BloggerのRSSを持ってくる作業をした時のことを覚書

【jQuery + PHP】クロスドメイン対応版:Google Feed API の代替案を紹介します。

オンズ開発ブログ

Javascriptの方の処理で最終的にデータを成形して指定要素にアウトプットする処理があるんですが(下記)

for (i in data) {			
  output.find('ul').append('<li><a href="' + data[i].link.text + '">' + data[i].title.text + '</a>' + data[i].description.text + '</li>');
  // console.log (data[i]);
}

そのままだとdata内にRSSで配信されている分全部入ってしまって多かったので5件に絞るためfor文の条件を変更。

for ( i = 0; i < 5; i++ ) { 

    var date = new Date(data[i].pubDate.text);
    var strdate = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + ("0"+date.getDate()).slice(-2);

    output.find('ul').append('<li class="p-posts--general__item"><a href="' + data[i].link.text + '"><span class="p-posts--general__item__date">' + strdate + '</span><span class="p-posts--general__item__title">' + data[i].title.text + '</span></a>' + '</li>');

  //console.log (data[i]);
}

ただこのままだと記事が2件しか無い時に3回目の処理から「data[i]がundefinedで‘pubDate’が読めない」というエラーが出たので、条件を付加

for ( i = 0; i < 5; i++ ) { 

  if( typeof data[i] !== 'undefined' ){
    var date = new Date(data[i].pubDate.text);
    var strdate = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' + ("0"+date.getDate()).slice(-2);

    output.find('ul').append('<li class="p-posts--general__item"><a href="' + data[i].link.text + '"><span class="p-posts--general__item__date">' + strdate + '</span><span class="p-posts--general__item__title">' + data[i].title.text + '</span></a>' + '</li>');
  } else {
  }

  //console.log (data[i]);
}


typeofとか普段使わない程度の処理しかしないので詰まってしまった、、、
ていうかGutenbergシングルクォーテーション打てなかったらコードメモれないじゃん、、、なんなの、、

[2019/01/24 追記]
シングルクォーテーションのバグ治ってました!やったぜ