※この記事は8年以上前の記事です。
現在は状況が異なる可能性がありますのでご注意ください。
どうもみやびプリンです。
北海道もやっとこさ雪解けの季節です。
ちょっと、久々にハマって一日使ったのでグチを。(ヲイ
さて、表記の話。
WordPressからRSSフィードを外部のPHPページ読み込みたい時がけっこうあり、
様々方法がありますが、
大体出てくるのは以下の方法だろう。
$rss = simplexml_load_file(RSSのURL); //XMLの構造が、の時(RSSフィードはだいたいこれ) foreach($rss->channel->item as $item){ //処理 }
simplexml_load_file()メソッドを使う方法だ。
そう、これで問題ない。問題ないんだよ。
本来は。
こっからが問題、
ある案件でこれをやった時、おかしな現象が起きた。
更新するたびに、
1.読み込める
2.中のPHPが実行されない
3.そもそも読み込めない
の3パターンを繰り返したのだ。
一日もがきにもがいた結論
WordPressのフィードはレスポンスが安定しないってこと
要は、WordPressは外部PHPとしこたま相性が悪いってこと・・・。
さんざんあがいた挙句、PHPで読み込むのはあきらめ、
AJAXで読み込むことにした。
そうしたら、嘘のようにすんなり行きました・・・。
$.ajax({ url: RSSのURL, type: 'GET', dataType: 'xml', timeout: 1000, error: function() { location.reload(); }, success: function(xml){ $(xml).find('item').each(function(index, val) { //処理 }); } });
一日返せ!
今回、たまたま、サーバー的な問題もあったからこうしたことが起きたけど、
(DNS切り替え時だったから安定してなかった)
教訓は、
ダメなら違う方法を探せ
です。これに尽きる。
システム屋の基本だね・・・。
とりあえず、頭のしわが増えたって話
コメントする