icon
Let's create! WordPressサイト制作とメンテ/エラー対応から、PHP/CSS/javascriptプログラミング、動画・音・イラスト等制作まで扱うコラム

【PHPライブラリ】dg/rss-phpを使った、外部サイトのrss新着情報を取得・表示する方法(autoload対応)

更新: 2025/06/28 2047文字

今回はPHPのライブラリをつかって、外部サイトのrss新着情報を取得・表示というのをやってみます。以前も当サイトではrss新着情報を取得というのを行いましたが、fetch-feed(WordPressの搭載関数)だったため、他の環境では使えませんでした。しかし今回の場合はWordPress環境以外でもOKです。さっそくやりかたを確認していきましょう。

dg/rss-phpライブラリ場所やインストール方法

dg/rss-phpライブラリがあるgithubリポジトリ

composerコマンドでもインストールできるんですけど、ライブラリ単体でも利用できます。他のサイトで見たりchat-gptにきいた感じだと、『rss-php/src/Feed.php』をダウンロードしてきて、requireで読み込んでも使えるとのことです。その場合は以下のリポジトリより入手します。

composerインストール方法(autoload対応)

そのほかのインストール方法として、composerのコマンドで入れるというのがあります。こちらだと一部のファイルとかが増えますが、プログラムにautoloadを書いて呼び出しできるようになります。コマンドは以下の通り(cdでインストールしたい場所に移動してください)。

cd 〇〇(インストールしたい場所)
composer require dg/rss-php

管理人の環境では『The zip extension and unzip/7z commands are both missing』のようなエラーメッセがでてきたので・・・ php iniファイルで、extension=zipを有効にして、xammpでapatche再起動してからcomposer requireのコマンドを叩きました。

入ったみたいですね。

指定ディレクトリにvendorができていて、中身はこのようになります。autoloadのファイルもできました。

ライブラリ本体のパスは『vendor/dg/rss-php/src/Feed.php』となります。autoloadで呼び出すので、あまり気にしなくていい気はしますが。

dg/rss-phpを使って、外部サイトのrss新着情報を取得・表示するコード

まず、ファイルの構成、今回はこんな感じになっていて、『getRss.phpがライブラリつかって処理』『index.phpがインスタンス化して実行』のような感じになっています。またgetRss.phpのプログラムは以下のように書きました。

変数に格納してもよかったんですけど、コンストラクタ内でechoまでおこなっています(インスタンス化した段階でRSS新着リストがでます)。 ループ外で取得しているtitle・descriptionはサイトのタイトルや概要で、個別記事のものはループ内で$item->titleのように取っています。
フロントのindex.phpでは・・・

<?php
require_once 'getRss.php';
$rssUrl = 'https://division-web.atelier-ss-agency.com/feed/';
new getRssClass($rssUrl);
?>

のように、RSSのアドレス渡してインスタンス化で出力されます。上記はこのサイトのRSSになってます。

表示例

ではさっそく、表示確認をしてみましょう。 このサイト(読んどけコラム)の、日付・タイトル・カテゴリーなどの新着情報が表示されました。

なお、上記のコードでは20件でてきましたが、WP管理画面で『RSS/Atom フィードで表示する最新の投稿数:20件』に設定して、プログラム側では件数を指定していないからです。件数を指定したい場合は、RSSフィード件数を設定するか、プログラム側でループ回数を指定するなどで対応できそうです。

あとがき・まとめ

  • dg/rss-phpを使って、シンプル目のコードで外部サイトのrss新着情報を取得・表示ができる
  • リポジトリからダウンロードするほか、composerコマンドで入れてもoK

まとめると、こんなところでしょうか。シンプルなプログラムなんで自分で作ってもよいですけど、ライブラリでもさらにサンプルなコードにできると思います。


【カテゴリ】- PHP
【タグ】-

関連記事