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。