コメント欄での s.fujino さんからの質問に答えてみます。一年前の今日の前後に書かれた記事を抽出する LastYearEntries プラグインの使用例で、去年の今頃に表示する記事がなかった場合には「サボっていました」と表示します。
<$MTSetVar name="lastyearentries_count" value="0"$>
<MTSetVarBlock name="lastyearentries_block">
<MTLastYearEntries days="15" lastn="5">
<$MTSetVar name="lastyearentries_count" value="1"$>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a> (<$MTEntryDate format="%Y.%m.%d"$>)</li>
</MTLastYearEntries>
</MTSetVarBlock>
<h2>去年の今頃は…</h2>
<MTIf name="lastyearentries_count">
<ul>
<$MTGetVar name="lastyearentries_block"$>
</ul>
<MTElse>
<p>サボっていました</p>
</MTIf>
予め変数 lastyearentries_count を 0 で初期化しておき、出力された記事の一覧の HTML も変数 lastyearentries_block に入れておくようにします。もし一つでも記事があった場合には、変数 lastyearentries_count が 1 になっているので、生成しておいた HTML を出力します。一方、記事が 1 件も無かった場合には、変数 lastyearentries_count は 0 のままなので、MTElse タグの中身が表示されるという仕組みです。
元の s.fujino さんのコメントのように、MTIfNonZero で判断してもよかったのですが、MTLastYearEntries を一回で済ませられるようにしてみました。
寄せられたコメント (全 1 件中、最新 5 件まで表示しています)
イメージどおりに表示されました。
MTLastYearEntries を2回使うのは美しくないなぁと思っていたのですが、これならすっきりですね。
変数が苦手科目だったのですが、これを機会にじっくり勉強します。
本当にありがとうございました!