MODxスニペットのDittoを使ってRSSを出力する方法を簡単に解説します。

MODxではRSSフィードをDittoで出力できるので便利です。Dittoがあれば、何でもできる。が、スローガンです。

RSS用ドキュメントの作成

ドキュメントを新規に作成します。使用テンプレートを「(blank)」に。リッチテキストのチェックをはずし、コンテンツタイプを「text/xml」に。そして、内容欄にスニペットのDittoを呼び出すタグを記述します。

[!Ditto? &format=`rss`!]

んで、保存。次に、HTMLのheadタグ内に、RSS用のタグを追加します。

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="[~ドキュメントID~]" />

ドキュメントIDの箇所には、RSSのドキュメントIDを入れます。とりあえず、ここまでが基本です。

細かい設定

Dittoを呼び出す際にパラメータを指定することで、詳細な設定ができます。とりあえず、RSS時に良く使うものだけ説明します。

parents(例:&parents=`5`)
親ドキュメントのIDを指定すると、その子のドキュメントが出力対象となります。複数の親ドキュメントを対象にしたい場合はカンマで区切ります(&parents=`5,8`)。
depth(例:&depth=`2`)
何階層までのドキュメントを出力対象とするかを指定します。
display(例:&display=`5`)
出力対象のドキュメントのうち、何件のドキュメントを出力するかを指定します。
showInMenuOnly(例:&showInMenuOnly=`1`)
1を指定することで、メニューに表示するドキュメントのみを出力します。
hideFolders(例:&hideFolders=`1`)
1を指定することで、フォルダを出力しません。
sortBy(例:&sortBy=`pub_date`)
ドキュメントの表示順を指定します。指定しなければ作成日順(createdon)で並び替えられますが、RSSなので公開日順(pub_date)のほうが良い人も多いと思います。

とりあえず、これだけ知ってれば何とかなると思います。

サンプル

当サイトでは過去にこんな感じで使用していました。

[!Ditto? &format=`rss` &parents=`43` &display=`10` &showInMenuOnly=`1` &hideFolders=`1`!]

簡単に説明すると、まず、&formatでRSS形式での出力を指定。ID43のフォルダ以下を取得対象として、10件を表示。メニューに表示しないドキュメントおよびフォルダーを取得対象外としています。

ドキュメントのパスを完全にする

フレンドリーURLを設定していると、XMLドキュメントのURLが「【ドキュメントエイリアス】.html」になっていることに違和感を感じるはずです。このままでも動作に問題はありませんが、いい気分ではありません。そこで登場するのが、「SEO Strict URLs」プラグインです。

しかしこのプラグイン、入れるのが、少々手間です。詳しい解説がLet’s enjoy MODxさんのサイトの「MODxリソース解説 SEO Strict URLs 1.0.1」のページに記載されています。フレンドリーURLを使用する場合は、理由がない限り、必ず入れておきたいプラグインです。