これを自動的に行う方法はありませんが、これを行う独自のモジュールを作成できます。
あなたがする必要があるのは、Orchard.Core.Feeds.IFeedItemBuilder
インターフェースを実装するクラスを追加することです。インターフェイス自体には、実装する必要があるメソッドが 1 つだけありますvoid Populate(FeedContext context)
。
このメソッドを実装する方法のコード スニペットを次に示します。
public void Populate(FeedContext context)
{
context.Response.Contextualize(
c => {
foreach (var feedItem in context.Response.Items.OfType<FeedItem<ContentItem>>())
{
var contentItem = feedItem.Item;
foreach (var part in contentItem.Parts)
{
// extract data you're interested in from parts
foreach (var field in part.Fields)
{
// extract data you're interested in from fields
feedItem.Element.SetElementValue("description", "Text to output to RSS");
}
}
}
});
}
context.Response.Items
RSS に出力されるすべてのアイテムを保持します。ここで難しいのは、RSS に出力したいデータを知ることです。多くの異なるフィールドを持つさまざまな部分があるためです。RSS に出力したいプロパティ名はすべて異なります。
したがって、私の提案は、contentItem
上記の例がカスタム タイプであるかどうかをテストすることです。そうである場合は、それをキャストし、カスタム フィールド名を使用してdescription
そのfeedItem
.