Steamer Lane Studio技術備忘録Movable Type

MTでの複数カテゴリにまたがる記事への関連記事表示

movable-type MTでの複数カテゴリにまたがる記事への関連記事表示
最終更新日: 2023年4月15日

表題、各カテゴリで投稿が1件の場合は記事アーカイブを作らずカテゴリアーカイブに開き、2件以上の際はカテゴリアーカイブに記事への案内を貼るサイトでのもの。
キャンペーンなど時限表示投稿を本記事(カテゴリーアーカイブ)にナビ=案内を出すためのもの。

<mt:if name="blog_id" eq="9">//ブログIDで分岐
<mtsetvarblock name="countres"><mtvar name="cat_cnts" op="-" value="$counts"></mtsetvarblock>
<mtunless name="countres" eq="1">
<mt:setvarblock name="s_day"><mt:entries limit="0" glue=","><mt:SetVarBlock name="cat_label"><mt:CategoryLabel></mt:SetVarBlock><mt:SetVarBlock name="all_label"><MTEntryCategories><mt:CategoryLabel></MTEntryCategories></mt:SetVarBlock><mt:unless name="all_label" eq="$cat_label"><$MTEntryCreatedDate format="%Y%m%d%H%M%S"$></mt:Unless></mt:Entries></mt:setvarblock>
<mt:setvarblock name="e_day"><mt:entries limit="0" glue=","><mt:SetVarBlock name="cat_label"><mt:CategoryLabel></mt:SetVarBlock><mt:SetVarBlock name="all_label"><MTEntryCategories><mt:CategoryLabel></MTEntryCategories></mt:SetVarBlock><mt:unless name="all_label" eq="$cat_label"><$MTUnpublishedDate format="%Y%m%d%H%M%S"$></mt:Unless></mt:Entries></mt:setvarblock>
<?php
$sdays=min(99999999999999,<mt:Var name="s_day">);//min関数は値が一つだと空白を出すので。phpそこまで詳しくない。
$edays=max(0,<mt:Var name="e_day">);
$start_date = $sdays;
$end_date = $edays;
?>
<? if( date("YmdHis") >= $start_date && date("YmdHis") <= $end_date ) { ?>//入れ子を表示・非表示のためのphp
<!--relatedGuide-->
<input id="addTrigger" class="add-trigger" type="checkbox" checked="checked">//連続データで入れ子を表示させる
<nav>
<mt:entries>
<mt:SetVarBlock name="cat_label"><mt:CategoryLabel></mt:SetVarBlock>
<mt:SetVarBlock name="all_label"><MTEntryCategories><mt:CategoryLabel></MTEntryCategories></mt:SetVarBlock>
<mt:unless name="all_label" eq="$cat_label">
<?
$end_date = "<$MTUnpublishedDate format="%Y%m%d%H%M%S"$>";
?>
<? if( date("YmdHis") >= $start_date && date("YmdHis") <= $end_date ) { ?>//個別の案内を表示・非表示のためのphp
<div class="related-guide">
<a href="<mt:EntryPermaLink>">
<mt:Entrytitle>
</a>
</div>
<? } else { ?>
<? } ?>
</mt:Unless>
</mt:Entries>
<label for="addTrigger" class="erase-addTrigger">×</label>//cssの連続データでナビを消すボタン
</nav>
<!--/relatedGuide-->
<? } else { ?>
<? } ?>
</mt:unless>
</mt:If>