Blogブログ

Scroll

MTのContentCalendarタグについて

suffix_matsumura

calendar.png

どうも、フロントエンドチームの者です。
自分のやりたいことがすんなり通じなかったことを載せます。

設定準備

phpからMTの変数に値渡しが可能なのか試しました。
例えばphpからjavascriptなら

var $a = "<? php echo $b; ?>;";

これだけで変数$bの内容を$aへ代入できます。
このような書き方がMTタグで通じるかもしれないと思い代入してみました。

<mt:SetVar name="a" value="<?php echo $b; ?>">

この書き方で再構築し、表示してみたところ数値が入っていたので次は日付でやってみます。

$i = 1;
$month = "201912";
$b = date('Ym', strtotime($month . '+' . $i .' month'));

西暦と月を単位無しで繋げた単純な5桁の数字を出力しています。
これで変数$bの値を先ほどのSetVarで格納し、値を出力すると「202001」のようにでました。
2019年12月から2020年1月になってたので成功です。

で、ここから本題。

MTContentCalendarを使う

一か月分のカレンダーを表示するブロックタグです。MT7からできたタグらしいです。

https://www.movabletype.jp/documentation/appendices/tags/contentcalendar.html

今までのバージョンだとMTCalendarというタグはあったようですが
MT7からコンテンツタイプという機能が追加されたことで、コンテンツタイプ専用のカレンダータグで用意されたのだと思われます。

使い方に載ってる部分を抜粋すると↓のようになっております。

<mt:ContentCalendar month="201710" content_type="イベント・セミナー" date_field="開催日時">

形式はYYYYMMです。この桁数から外れた書式だと再構築した時点でエラーが返ってきます。
この形式に従い、先ほどphpで準備した日付を入れて実行結果を得るのが目的です。
↓のように書きました。

<mt:ContentCalendar month="<?php echo $b; ?>" content_type="イベント・セミナー" date_field="開催日時">

結果は・・・エラーでした。再構築すらできません。
「monthモディファイアはYYYYMMでなければいけません。」とか言われました。
仮に通ってた場合、イメージとしては↓になってるはずです。

<mt:ContentCalendar month="202001" content_type="イベント・セミナー" date_field="開催日時">

結局わからずphpで値の受け渡しをせずにmonthモディファイアを通せるようにしました。
日付に関する部分は結構苦手で、その苦手な面が表に出てきた出来事でした。。

PAGE TOP