特定のカスタムフィールドの値の出力のメモ。MTEntryCustomFieldsにおいてinculudeモディファイアを利用できるようですが、特定のカスタムフィールドには提供された専用のタグを使います
折角、カスタムフィールドのカテゴリを設けたので、久久にカスタムフィールドねたでいきます。
以下はカスタムフィールドにフラグメント識別子をいれてその内容にもとづいたURIを作成する目的のものです。
カスタムフィールド名として「フラグメント」、使用するテンプレートタグは「cf_fragment」にしたとします。
- カスタムフィールド用タグを利用した(通常の)書き方
-
<ul> <MTEntries> <mt:if tag="cf_fragment"> <li><$MTEntryTitle$>: <a href="<$MTEntryPermaLink$>#<$MTcf_fragment$>"> <$MTcf_fragment$></a> </li> </mt:if> </MTEntries> </ul>
で、以下はMTEntryCustomFieldsタグにinculudeモディファイアを使って、「フラグメント」のカスタムフィールドのみ出力になるようにした書き方です。
- MTEntryCustomFieldsでinculudeモディファイアを使った場合
-
<ul> <MTEntries> <MTEntryCustomFields include="フラグメント"> <MTIfNonEmpty tag="EntryCustomFieldValue"> <li><$MTEntryTitle$>: <a href="<$MTEntryPermaLink$>#<$MTEntryCustomFieldValue$>"> <$MTEntryCustomFieldValue$></a> </li> </MTIfNonEmpty> </MTEntryCustomFields> </MTEntries> </ul>
結果的には等しくなりますが、コードとしてどちらがすっきりとしているのかはいわずともわかりますね。
なお、MTEntryCustomFieldsについてはタグリファレンスには、exclude(特定のカスタムフィールドを除外する)のみのモディファイアが掲載されています。特定のカスタムフィールドの内容の出力は、そのカスタムフィールドのテンプレートタグを使う(*リファレンスにも明記されています)ということで頭の中にいれておけばいいのでないでしょうか。Tipsでもなんでもなく、リファレンスをよく読めばいいという話であります。