movable-type MTのアーカイブマッピング
最終更新日: 2023年4月15日

要件だが、
AサイトとBサイトがあるが、売っている物は同じで、サイトのデザインもそうだがターゲット(マーケット)が少し異なるのことから専門性などと言った面で複数的に存在。AサイトのDBが巨大故異なるCMSエンジン/異なるDBとしている。
運営担当としては、一部の記事を2度投稿しないといけない手間が面倒なので、Aサイトに投稿した際にDB代わりのtxtファイルディレクトリをつくり、それをBサイトでphpによりincludeする形で造った。
ちなみに作ったのは
トップページへの告知用lastn=”5″指定のタイトル(画像も持ってきてるが)リストファイル
カテゴリーアーカイブ(一覧表示用)のタイトルリストファイル
各記事の内容部分をentryIDによりファイル名付されたコンテンツファイル
各コンテンツはxxxx.php?id=entryIDで制御。
で、Aサイトの方は本来の記事アーカイブがあるので、別個に記事アーカイブを作成し、記事内容ファイルを出力するのはアーカイブマッピングで制御。

<$mt:CategoryLabel setvar="cat_label"> <mt:If name="cat_label" like="カテゴリA|カテゴリB"> <$mt:EntryDate format="%Y%m%d" setvar="contents_time_ymd"$> <mt:If name="contents_time_ymd" ge="20141201"> object/php/info/%e.txt </mtif> </mt:If>

上記コードを一行にしてアーカイブマッピングのパスに入力して仕上がり。
上のコードは記事の作成時期による制限も付けているが、当然なくてもOK。