MovableType

指定月・年間カレンダーを表示する方法

Loopタグかforタグを使う

Movable Type ユーザーコミュニティに質問がありましたので、ご回答いたします。

指定月を表示する

SetHashVar タグで、表示したい月を指定しています。 サンプルでは2019年03月と2019年4月を指定しました。

<mt:SetHashVar name="Calendars">
  <mt:SetVarBlock name="1"><mt:Date format="%Y">03</mt:SetVarBlock>
  <mt:SetVarBlock name="2"><mt:Date format="%Y">04</mt:SetVarBlock>
</mt:SetHashVar>

作成した日付リストのCalendarsをMTLoopタグで出力します。

値はMTCalendarタグのmonthモディファイアに指定します。

表示中のカレンダータイトルは、MTDateタグで行います。

<mt:Loop name="Calendars">
  <h3><mt:Date ts="$__value__" format="%Y年%m月"></h3>
  <table>
    <tr>
      <th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>
    </tr>
  <mt:Calendar month="$__value__">
    <mt:CalendarWeekHeader><tr></mt:CalendarWeekHeader>
      <td>
        <mt:CalendarIfToday><strong></mt:CalendarIfToday>
        <mt:CalendarIfEntries>
          <mt:Entries lastn="1">
            <a href="<$mt:EntryPermalink$>"><$mt:CalendarDay$></a>
          </mt:Entries>
        </mt:CalendarIfEntries>
        <mt:CalendarIfNoEntries>
          <$mt:CalendarDay$>
        </mt:CalendarIfNoEntries>
        <mt:CalendarIfToday></strong></mt:CalendarIfToday>
        <mt:CalendarIfBlank> </mt:CalendarIfBlank>
      </td>
    <mt:CalendarWeekFooter></tr></mt:CalendarWeekFooter>
  </mt:Calendar>
  </table>
</mt:Loop>

年間カレンダーを表示する

MTForタグで1年の月の数(12)を繰り返し、今の日付+月の条件を作成し、Calendarタグのmonthモディファイアに設定します。

表示中のカレンダータイトルは、MTDateタグで行います。

<mt:For var="i" from="1" to="12">
  <mt:SetVarBlock name="Calendar"><mt:Date format="%Y"><mt:Var name="i" zero_pad="2"></mt:SetVarBlock>
  <h3><mt:Date ts="$Calendar" format="%Y年%m月"></h3>
  <table>
    <tr>
      <th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>
    </tr>
  <mt:Calendar month="$Calendar">
    <mt:CalendarWeekHeader><tr></mt:CalendarWeekHeader>
      <td>
        <mt:CalendarIfToday><strong></mt:CalendarIfToday>
        <mt:CalendarIfEntries>
          <mt:Entries lastn="1">
            <a href="<$mt:EntryPermalink$>"><$mt:CalendarDay$></a>
          </mt:Entries>
        </mt:CalendarIfEntries>
        <mt:CalendarIfNoEntries>
          <$mt:CalendarDay$>
        </mt:CalendarIfNoEntries>
        <mt:CalendarIfToday></strong></mt:CalendarIfToday>
        <mt:CalendarIfBlank> </mt:CalendarIfBlank>
      </td>
    <mt:CalendarWeekFooter></tr></mt:CalendarWeekFooter>
  </mt:Calendar>
  </table>
</mt:For>

ご質問

2か月カレンダー