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を使用する場合は、理由がない限り、必ず入れておきたいプラグインです。
