記事配信の RSS WordPress プラグイン Cuerda-Feed-total とは
複数のニュースポータル向けフィードを、1つの WordPress から一元的に運用するためのプラグイン
Cuerda-Feed-total は、WordPress サイトで公開された記事を、Yahoo!ニュースやグノシーをはじめとする複数のニュースポータルへ届けるための、フィード生成基盤となるプラグインです。
「媒体ごとにバラバラな RSS/XML 仕様」「頻繁に発生する仕様変更」「限られた開発リソース」といった現場特有の負荷に対して、WordPress プラグイン側に共通レイヤを設けることで、開発・運用コストを抑えながら、拡張性と見通しのよさを両立する設計になっています。
開発担当者が日々向き合う課題
- 媒体ごとに RSS/XML の仕様(要素名・属性・必須項目)がばらばらである
- CMS コアやテーマを改変して積み上げてきた独自実装が、時間とともにスパゲッティ化している
- 仕様変更が入るたびに「どのファイルを直すのか」「過去の影響範囲はどこまでか」が見えにくい
- フィードのバリデーションエラーや、配信先からの指摘にその都度個別対応している
- FTP ベースの配信(Yahoo!ニュースなど)と、通常の RSS 配信が別々の実装として併存している
- 開発チームと編集部の間で、「どの記事がどこへ出ているのか」という認識が少しずつずれていく
Cuerda-Feed-total は、こうした技術負債が溜まりやすい部分を、プラグイン側であらためて構造化し直すことを前提に設計されています。
アーキテクチャの特徴
1. WordPress 標準に忠実な構成
- コア/テーマを改変することなく導入できる、純粋なプラグイン実装
- 投稿・分類・カスタムフィールド・wp_options・postmeta といった WordPress 標準コンポーネントだけで完結する構成
- WP のフック(アクション/フィルター)、WP Cron、HTTP API、Transients を活用して、フィード生成・ライセンスチェック・FTP 配信などを実装
既存テーマや他プラグインとの干渉を最小限にとどめながら、「外部配信」というレイヤだけを静かに切り分けることができます。
2. 共通エンジン + 配信先別設定ファイルという二層構造
共通フィードエンジン
- Query Builder
- 各配信先向けフィードに記事を「出す/出さない」を判定するレイヤ。
投稿タイプ、公開ステータス、期間条件、除外メタ(「この配信先には出さない」など)を組み合わせて WP_Query を構築します。
- Channel Renderer
- <channel> や <Identification> / <Management> など、フィード全体の情報を生成するレイヤ。
サイト名、説明文、ライセンス状態、媒体固有メタデータといった「フィードの顔」にあたる部分を担当します。
- Item Renderer
- 各記事の <item>/<NewsItem> を生成するレイヤ。
タイトル、リンク、サマリー、本文、カテゴリ、タグ、著者、画像、関連リンク、地域コードなど、記事一つ分に必要な要素を一手に担います。
配信先別設定レイヤ
- Config
- 各配信先ごとの仕様は、
- 使用する名前空間
- 必須/任意要素
- 関連リンクのタグ名
- 出力する最大件数
などを定義した「設定ファイル/設定配列」として管理します。共通エンジンに対して「この媒体ではどのように振る舞うべきか」を静かに指示する役割を果たします。
既存システムとの連携・影響範囲
1. 投稿データは既存のまま利用
既存の投稿タイプ(post, page, カスタム投稿タイプ)を、そのまま配信用のデータソースとして利用できます。
必要に応じて、「配信除外フラグ」や関連リンク用のカスタムフィールド、写真リンク用のカスタムフィールドなどを追加するだけで動作し、既存の編集フローを大きく変える必要はありません。
2. DB スキーマ変更は不要
新しいテーブルを作成せず、wp_options と postmeta を利用します。cuerda_ プレフィックスを付けたオプション・メタキーを用いることで、他システムとの衝突を避ける設計になっています。
アンインストール時には、これらのオプション・メタをクリーンアップする仕組みを用意し、導入前後でデータベースを汚さない運用を心がけています。
3. 見た目(テーマ)への影響は皆無
フィードは /?feed=cuerda_total&gnf のような URL から提供され、Web フロント側の UI には一切影響を与えません。テーマのテンプレートに手を入れる必要はなく、「配信のレイヤ」だけを後付けする形で組み込むことができます。
セキュリティ・運用面の考慮
- 直接アクセス防止(if ( ! defined( 'ABSPATH' ) ) exit;)を各ファイルに実装
- 入力値は WordPress 提供のサニタイズ関数で処理し、出力時にはエスケープを徹底
- ライセンス確認や外部連携は WordPress HTTP API 経由で実装し、タイムアウト・エラー時のフォールバックも考慮
- Yahoo!ニュースの FTP-SSL 接続情報など、センシティブな設定は管理画面と DB 側で安全に管理し、公開側には一切露出しない構造
「プラグインとしてのセキュリティ基準」を押さえたうえで、運用現場での実用性を損なわないことを重視した実装になっています。
導入プロジェクトの進め方(開発側の視点)
要件整理
- どの配信先に配信するかを整理する
- どの投稿タイプ/カテゴリ/タグを配信対象にするかを定義する
- クライアント固有のタイトル・カテゴリマッピングルールの有無を確認する
- PoC/ステージング環境での検証方針を決める
- 既存の WordPress 環境にプラグインを導入する
- テスト用フィードを生成し、媒体側のバリデーターで検証する
- ログやステータス管理の挙動を確認する
- 本番組み込みの手順とロールバック方針を整える
- 本番環境に導入し、既存フィードとの並行運用で切り替えテストを行う
- 問題がなければ、媒体側の参照 URL を Cuerda-Feed-total のフィードに切り替える
運用・保守
- 配信先仕様に変更があった場合は、プラグインの更新だけで対応
- WordPress/PHP のバージョンアップにあわせた追随
- 必要に応じた機能追加やカスタマイズは、サポート窓口への無料相談を起点に検討可能
開発委託先・SIer の方へのメッセージ
「外部配信の仕様書をゼロから読み込み、RSS を一品物として実装する」よりも、すでに実績のあるプラグインを基盤として活用した方が、コスト・納期・保守性のバランスを取りやすい場面は少なくありません。
Cuerda-Feed-total は、「WordPress でニュースサイトを運営しているクライアント」に対して、外部配信のソリューションを付加価値として提案する際の土台としてご利用いただけます。
「外部ニュース配信まわりを、きちんと整理されたレイヤ構造で運用したい」とお考えの開発チームや外注開発会社の方は、Cuerda-Feed-total をベースとした提案を、ひとつの選択肢としてご検討ください。
Cuerda-Feed-total をもう少し詳しく知る
ウェブマスターの方へ
🔗WordPress.org 公式プラグインディレクトリへ