Steamer Lane Studio技術備忘録スクリプト

MTのトップページなどで投稿を期限付きで表示

script MTのトップページなどで投稿を期限付きで表示
最終更新日: 2023年4月15日

有償ならその手のプラグインはあったが、商用で期限表示させたい場合など。ちょっとまどろっこしいやり方だが・・・

カスタムフィールドかプラグインで

yyyy年

mm月

dd日

上記フィールドを作る。サンプルは素人の投稿時でも解るように細かくしたが、yyyymmddを一つのフォームで8桁の数字として扱った方が投稿画面とタグはすっきり。

OS版で作ったのでMTEntryAnnounce○○○○というプラグインによるフィールで作成したが上記のように8桁にする際は

<$MTEntryAnnounceYear$><$MTEntryAnnounceMonth$><$MTEntryAnnounceDate$>

この部分を一つにできる。

 

テンプレートは(トピックスというサブカテに属するエントリーって事になってる)

<MTEntries category="トピックス">
<mt:If tag="EntryAnnounceDate">
<?
$start_date = "<mt:EntryDate format="%Y%m%d">";
$end_date = "<$MTEntryAnnounceYear$><$MTEntryAnnounceMonth$><$MTEntryAnnounceDate$>";
?>
<? if( date("Ymd") >= $start_date && date("Ymd") <= $end_date ) { ?>
</mt:If>
--MTによる投稿記事などの処理 EntryBodyとか--
<mt:If tag="EntryAnnounceDate">
<? } else { ?>
<? } ?>
</mt:If>
</mt:Entries>

phpで表示・非表示の処理を行う。

If tag=””処理でphpを書き込み、日付に基づく数値で表示・非表示処理。

日付を扱うプラグインなどをうまく活用すればもっと軽くできるか?