Dittoのタギング(tagging)をフィルター代わりに使う

Dittoで条件を絞り込む際、通常はフィルターを使います。
フィルターは複数指定することで、それぞれをAND条件とし、さらに絞り込むことができます。
参考)http://d.hatena.ne.jp/hikidas_ikeda/20090306/1236350741

もう一つ、絞り込みに使えるものとして、タギングtagging)があります。タギングの場合は、複数指定して、それぞれをOR条件とすることもできます。(ちなみに、フィルターとタギングを両方使った場合、フィルターとタギングの関係はAND条件になります)

例として、テンプレート変数(tagword)にタグとなるキーワードを「,」で区切って入力していて、キーワード「MODx」または「CMS」がここに入力されているものだけに絞り込んで一覧表示するケースを想定します。
なお、ページアドレスは「search_tag.html」とします。

■キーワードを、直接Dittoスニペットのパラメータで指定する。

[!Ditto? &id=`tag_search` &extenders=`tagging` &tagData=`tagword` &tagDelimiter=`,` &tags=`MODx,CMS` &language=`japanese-utf8`!]

上記のようにDittoパラメータでキーワードを指定するとキーワード毎にページが必要になりますので、次にURLでキーワードを指定するようにします。

■キーワードを、URLで指定する。
ここでは、Dittoのidパラメータが「tag_search」ですので、「tags」を「tag_search_tags」として、アドレスは以下のようにします。

search_tag.html?tag_search_tags=MODx,CMS

(もしDittoにidパラメータをつけていなければ「tags」でOKです)

この場合、Dittoスニペットのパラメータに「tags」は不要です。

[!Ditto? &id=`tag_search` &extenders=`tagging` &tagData=`tagword` &tagDelimiter=`,` &language=`japanese-utf8`!]

※日本語のキーワード等を使う場合、UTF-8でURLエンコードして指定します。(「UTF-8」「URL」「エンコード」等で検索するとエンコードできる無償のサービスが多数みつかると思います)


■さらに、使用するフィールドまで、URLで指定する。
Dittoの「request」を使って、「tagData」パラメータを指定します。
例として、説明(ドキュメント変数「description」)内のキーワードを使うように変更します。

アドレス

search_tag.html?ditto_tag_search_tagData=description&tag_search_tags=MODx,CMS

Dittoスニペット

[!Ditto? &id=`tag_search` &extenders=`request,tagging` &tagData=`tagword` &tagDelimiter=`,` &language=`japanese-utf8`!]


★注意★
Dittoの「extenders」パラメータの指定は、順番に意味があります。
例えば、上記で「&extenders=`tagging,request`」とすると、「tagging」が先に実行されますので、URLでの「tagData」指定は無効になります。
(ちなみに「tags」だけは特別で、元々URLで指定できるようになっています)