ヘッドレスWordPressで、RSSフィードやJSONフィードを表示する方法
Webサイトを構築するとき、CMSを利用すればRSSフィードやJSONフィードを配信することができます。近年は、RSSリーダーを利用しているユーザーは少なくなっているものの、むしろAI時代において、AIがWebサイトの情報を取得するのにRSSフィードを利用しやすくなる可能性もあります。
そのため、ヘッドレスCMSを利用している場合でも是非フィード情報を配信するようにしましょう。ヘッドレスWordPressを使っている場合、非常に簡単に行うことができます。
WordPressのフィードを加工しよう
やり方は非常に簡単で、ヘッドレスWordPressからフィード情報を受信します。
$feed = file_get_contents('https://cms.h2o-space.com/feed/json');
この場合、アドレスがCMS側のアドレスになっているため、これを本来のアドレスに加工します。例えば弊社の場合、「cms.example.com」を「example.com」に置き換えます。
$feed = str_replace('cms.h2o-space.com', 'h2o-space.com', $feed);
ただし、ヘッドレスWordPressでは画像などのリソースファイルはCMSサーバーの方に配置されているため、「/wp-content」と続くアドレスは、改めて戻します。
$feed = str_replace('h2o-space.com/wp-content', 'cms.h2o-space.com/wp-content', $feed);
後はこのファイルを、そのまま出力します。
return response($feed, 200)
->header('Content-Type', 'application/json; charset=UTF-8');
JSONフィードを出力しよう
JSONフィードも同じです。まずは、ヘッドレスWordPress側にJSONフィードを出力するプラグインをインストールします。
すると、「cms.example.com/feed/json」というアドレスでJSONフィードが取得できるので、これを同じく処理して出力します。
Laravelのルートファイルに記述すると、次のようになります。
Route::get('/feed', function () {
$feed = file_get_contents('https://cms.h2o-space.com/feed');
$feed = str_replace('cms.h2o-space.com', 'h2o-space.com', $feed);
$feed = str_replace('h2o-space.com/wp-content', 'cms.h2o-space.com/wp-content', $feed);
return response($feed, 200)
->header('Content-Type', 'application/rss+xml; charset=UTF-8');
})->name('feed');
Route::get('/feed/json', function () {
$feed = file_get_contents('https://cms.h2o-space.com/feed/json');
$feed = str_replace('cms.h2o-space.com', 'h2o-space.com', $feed);
$feed = str_replace('h2o-space.com/wp-content', 'cms.h2o-space.com/wp-content', $feed);
return response($feed, 200)
->header('Content-Type', 'application/json; charset=UTF-8');
})->name('feed.json');
こうして、簡単にフィード情報を出力できます。手間もかからないので、是非出力しておくと良いでしょう。