External RSS Importer
WordPressの外部RSSフィードを定期取り込みし、投稿として登録するプラグインです。
by Portfolio Project · github.com/misotz/external-rss-importer · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/misotz/external-rss-importer/archive/refs/heads/master.zipReadme
External RSS Importer
WordPressの外部RSSフィードを定期取り込みし、投稿として登録するプラグインです。
目的
複数の外部RSSを一元管理し、WordPress投稿への反映を自動化します。手動実行にも対応し、編集フローに合わせて下書き/公開を選択できます。
想定ユースケース
- 業界ニュースを複数メディアから収集して下書き化したい
- 抜粋と元記事リンク中心で、流入を元サイトへ誘導したい
主な機能
- フィード登録/編集/削除(管理画面)
- 取り込み設定
- 投稿ステータス(下書き/公開)
- 本文モード(全文/抜粋+元記事リンク)
- 頻度(1時間/6時間/24時間)
- 有効/無効
- 手動の「今すぐ取り込み」
- WP-Cronによる定期取り込み
- GUIDによる重複スキップ
- 取り込みログ(直近100件保持)
スクリーンショット


インストール
- このリポジトリを
wp-content/plugins/external-rss-importerに配置 - WordPress管理画面で
External RSS Importerを有効化 設定 > 外部RSS取り込みを開く
設定手順
設定 > 外部RSS取り込みでフィードを追加- フィードURL、カテゴリ、投稿ステータス、本文モード、頻度を設定
- 必要に応じて「今すぐ取り込み」を実行
設定 > RSS取り込みログで結果を確認
定期取り込みの動作
WP-Cron イベント eri_run_scheduled_imports を1時間ごとに発火させ、
実行のたびに有効なフィードを走査します。各フィードについて
「前回取得から頻度設定の時間が経過しているか」を判定し、対象となったものだけ取り込みます。
cron イベントは1件のみ登録され、フィードの追加・削除・頻度変更時にも 再スケジュールは発生しません。
WordPress の wp_cron はサイトへのアクセスをトリガーとする疑似 cron です。
アクセスが少ない環境では実行タイミングがずれることがあります。確実な定期実行が必要な場合は、
サーバーの crontab で wp-cron.php を呼び出し、wp-config.php に
define('DISABLE_WP_CRON', true); を追記してください。
動作確認環境
- Local by Flywheel + WordPress 7.0 + PHP 8.x
- サポート対象: WordPress 5.x 以上、PHP 7.4 以上
仕様の主要ポイント
- 重複判定キー: 記事GUID(
_external_rss_guid) - 投稿タイプ:
post - カスタムフィールド:
_external_rss_source_url_external_rss_source_feed_external_rss_guid
- ログ保持: 直近100件(古い履歴は自動削除)
制約事項
- 対応WordPress: 5.x以上
- 対応PHP: 7.4以上
- RSS 2.0を対象(Atom非対応)
- HTMLサニタイズは基本的な範囲のみ
- 多言語翻訳は未提供(
.potのみ同梱)
関連ドキュメント
- SPEC.md — 仕様書
開発の動機
過去に外部メディアと連携した記事取り込みの仕組みを PHP でゼロから自作した経験が多数あります。
当時はスクラッチで書いていた処理が、現在の WordPress では fetch_feed()、
wp_cron、wp_insert_post() といった標準 API を組み合わせて実現できます。
本プラグインは、その差分を確認しながら設計判断を整理することを目的に実装しました。
仕様と設計の意図は SPEC.md を参照してください。
ライセンス
GPLv2 or later(WordPress標準ライセンス)
Read the full README on GitHub →
Releases
| Tag | Published |
|---|---|
| v0.1.0 | May 27, 2026 |
These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.