コメント欄での 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回使うのは美しくないなぁと思っていたのですが、これならすっきりですね。
変数が苦手科目だったのですが、これを機会にじっくり勉強します。
本当にありがとうございました!