ヘッドレス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フィードを出力するプラグインをインストールします。

https://ja.wordpress.org/plugins/jsonfeed/

すると、「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');

こうして、簡単にフィード情報を出力できます。手間もかからないので、是非出力しておくと良いでしょう。

ヘッドレスWordPress