RSS の記事要素

Cuerda-Feed-total が出力する RSS において、channel/item は「この配信先向けに、いま届けるべき記事ひとつ分」を表す単位です。 どの記事を item として含めるか、そしてどの記事はあえて含めないか――その判断は、単に公開状態だけでなく、 配信先ごとの設定や投稿ごとの指定、過去の配信履歴までも視野に入れて行われます。 ここでは、item の子要素には触れず、「どの記事が item として出力されるのか」という観点に絞って、そのロジックを整理します。

item 出力までの大きな流れ

Cuerda-Feed-total は、各配信先ごとに次のような段階を踏んで channel/item を決めていきます。

  1. 対象の配信先がライセンス認証により「利用可能」と判定されているかを確認する。
  2. 配信設定画面で指定された投稿タイプ・カテゴリ・タグなどをもとに、「候補となる記事の集合」を構築する。
  3. 投稿単位の配信除外設定や、配信先ごとの細かなルールに基づき、候補から記事を間引く、あるいは特別な扱いに振り分ける。
  4. 並び順と件数の上限を適用し、「いまこの瞬間にこの配信先へ渡す item の一覧」を確定する。

このようにして決められた一覧のひとつひとつが、RSS 内の <item> 要素として出力されます。

配信先ごとの基本条件:配信設定とライセンス

まず前提として、対象となる配信先がライセンス画面で「有効」と判定されている必要があります。 ライセンスが無効な配信先については、その配信先向けの RSS そのものが生成されず、 結果として channel/item も一切出力されません。

ライセンスが有効な配信先については、管理画面の「配信設定」で次のような条件を指定できます。

  • どの投稿タイプ(通常の投稿、固定ページ、カスタム投稿など)を配信対象とするか
  • どのカテゴリやタグを含めるか、あるいは除外するか
  • フィードに含める投稿数の上限

Cuerda-Feed-total は、これらの条件をもとに、まず「配信先ごとのベースとなる記事の集合」を構築します。 この段階で、記事が公開済みであること(publish)や、予約投稿の公開時刻が現在を過ぎていることといった基本条件も考慮されます。

投稿単位の配信制御:記事ごとの「送る/送らない」

ベースとなる記事集合が決まったあと、Cuerda-Feed-total は各投稿に対して、 配信先ごとに用意された「この配信先には送らない」といった指定を確認します。 これは、投稿編集画面に表示される本プラグイン専用のメタボックスから設定できるものです。

たとえば、ある記事について「Yahoo!ニュースには配信しない」と指定した場合、 その記事は Yahoo!ニュース向けフィードの候補集合から除外されます。 他方で、同じ記事を SmartNews や LINE NEWS には配信する、といった細かな制御も可能です。

この投稿単位の制御は、「一部の配信先には内容が適さない」「特定の媒体とだけ共有したい」といった編集上の判断を、 技術的な設定に落とし込むための仕組みです。 Cuerda-Feed-total は、こうした指定を尊重し、item の出力可否に反映します。

配信履歴をふまえた判断:いま出すべきか、出さないべきか

Cuerda-Feed-total Ver.4 では、「その記事がこれまでに配信されたことがあるか」「過去にどのような状態で扱われたか」といった履歴も考慮します。 同じ配信先に対して、ある記事を繰り返し item として出力するかどうかは、 単に現在の公開状態だけでなく、過去の配信ステータスとの関係で判断されます。

たとえば、

  • これまで配信していなかった記事が新たに条件を満たした場合には、「新規の記事」として item に含める。
  • すでに配信している記事の内容が更新され、配信先側でも更新を認識してもらう必要がある場合には、「更新があった記事」として扱う。
  • これまで配信していた記事が、非公開化や配信除外の指定によって対象外になった場合には、「配信をやめるべき記事」として扱う。

どのようなかたちでそれが表現されるか(通常の記事として扱うか、削除を知らせるかなど)は配信先ごとの仕様に依存しますが、 少なくとも「いまこの瞬間に item を出すべきかどうか」は、こうした履歴情報を土台に判断されます。

並び順と件数の制御

配信対象と判定された記事については、配信先ごとの仕様に合わせて並び順が決められます。 多くの配信先では、もっとも新しい公開日時や更新日時を基準として、新しいものから順に並べる方式が採用されます。 この並び順は、そのまま RSS 内の <item> の順序として反映されます。

また、配信設定で指定された「フィードに含める投稿数の上限」もここで適用されます。 上限件数を超える記事は、条件を満たしていてもこのフィードでは item として出力されません。 これにより、

  • 配信先側の取り込み処理に過度な負荷をかけないこと
  • 読者にとって意味のある範囲に記事を絞ること

を両立することを意図しています。

配信先ごとの細かな違い

Yahoo!ニュース、SmartNews、LINE NEWS など、各配信先はそれぞれ独自の配信仕様を持っています。 Cuerda-Feed-total は、これらの仕様書にもとづき、「どの条件のときに item を出すべきか」を配信先ごとに調整しています。

たとえば、

  • ある配信先では、特定のカテゴリに属する記事だけを配信対象とする。
  • 別の配信先では、公開から一定期間を過ぎた記事は新規配信の対象外とする。
  • さらに別の配信先では、削除や非公開化が行われた記事についても、一定期間は「配信停止を知らせるための item」を出力する。

といった具合に、「配信先がどのように記事を扱うか」という前提に沿って item の出力条件が組まれています。 媒体側は、こうした個別仕様のすべてを把握しておく必要はなく、 管理画面上で配信先ごとの設定を選択することで、その背後のロジックが自動的に適用されるよう設計されています。

「出力しない」という判断の重要性

item のロジックでもう一つ重要なのは、「あえて出力しない」という選択肢を明確に持っていることです。 配信先との契約や読者との約束を守るうえで、出してはならない記事を出さないことは、 新しい記事を素早く届けることと同じくらい大切です。

Cuerda-Feed-total は、配信設定・投稿単位の指定・配信履歴などを突き合わせることで、 「この配信先に対して、このタイミングで、この記事の item を出すべきかどうか」を一つひとつ判断します。 その結果として、RSS に並ぶ <item> は、単に「公開記事の一覧」ではなく、 媒体として責任を持って配信されるべき記事だけを選び取った集合となるよう設計されています。

item の子要素にどのような情報を載せるか、どのように更新や削除を表現するかについては、 別のページで配信先ごとに詳しくご説明します。 ここではまず、「どの記事を item として扱うか」という入り口のロジックにこそ、 配信の品質を支える判断が凝縮されていることをお伝えできればと思います。

技術者向けの情報に戻る

©cuerda™