WordPressのRSSフィードを外部から読み込めない時の話

謎のプリン語る。
プログラミングの役立つ情報とか、どうでもいい雑談とか書いてます。
一人書く人増えました。

WordPressのRSSフィードを外部から読み込めない時の話

2016年04月04日

みやびプリン 500 316

144 144

※この記事は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切り替え時だったから安定してなかった)

教訓は、
ダメなら違う方法を探せ
です。これに尽きる。
システム屋の基本だね・・・。

とりあえず、頭のしわが増えたって話

トラックバック(0)

トラックバックURL:

コメントする

ページトップへ戻る