カレンダーで特定の曜日だけ出力を変える

MTQに以下のような質問がありました。

記事を投稿しなくても、毎週決まった曜日にテキストをカレンダーに表示させることはできるでしょうか?

すでにMTQにも解答していますが、こちらでも記事にまとめます。

1.日付から曜日を得る

日付関係のテンプレートタグでは、「format="・・・"」のモディファイアに書式を指定する文字を組み合わせて、日付をさまざまな形式で出力することができます。

曜日を出力する書式指定文字として、「%A」と「%w」があります。
%Aは「月曜日」などの曜日名を出力することを意味します。
また%wは、日曜日なら0、月曜日なら1、・・・、土曜日なら6の数字を出力します。

カレンダーの個々の日付は、MTCalendarDateタグで出力することができます。
MTCalendarDateタグにもformatモディファイアを指定することができますので、「<$mt:CalendarDate format="%w"$>」とすれば、日曜日なら0、月曜日なら1・・・という値を出力することができます。

2.曜日を判断する

1.の方法で、カレンダー内の個々の日付から曜日を得ることができます。
その値を条件判断すれば、特定の曜日だけ出力を変えることができます。

MTIfタグに「tag="テンプレートタグ名"」のモディファイアを指定すると、テンプレートタグの値を比較に使うことができます(ただし、テンプレートタグ名の先頭の「MT」は付けません)。
また、「tag="テンプレートタグ名"」のモディファイアを使う場合、そのテンプレートタグのモディファイアもMTIfタグに指定することができます。

この書き方を利用して、カレンダーの特定の曜日だけ出力を変えるには、以下のように書きます。
「曜日を表す値」には、日曜日なら0、月曜日なら1・・・を指定します。

<mt:If tag="CalendarDate" format="%w" eq="曜日を表す値">
  その曜日だけ出力する内容
</mt:If>

質問された方は、水曜日と金曜日に特定の出力を行いたいということでした。
曜日を表す値は、日曜日が0、月曜日が1・・・なので、水曜日は3、金曜日は5になります。
したがって、以下のように書けば良いです。

<mt:If tag="CalendarDate" format="%w" eq="3">
  水曜日だけ出力する内容
</mt:If>
<mt:If tag="CalendarDate" format="%w" eq="5">
  金曜日だけ出力する内容
</mt:If>