midukingw

MT7で、今日を含む今日以降の開催中記事のみを4件表示したい

0

MT7で、今日を含む今日以降の開催中記事のみを4件表示したいです。

□テンプレートに記述したソース

<mt:Entries sort_by="field:endday" sort_order="descend" lastn="0">
<mt:If name="end_day" ge="$today">
/*ここに出力する記事の内容*/
</mt:If>
</mt:Entries>

□カスタムフィールドや、変数名等の補足
・開催期間終了日・単日開催日のカスタムフィールド:endday
・今日の日付:

<mt:SetVarBlock name="today"><mt:Date format="%Y%m%d"></mt:SetVarBlock>

「lastn="0"」としているのは「lastn="4"」としたとき、
カスタムフィールド「endday」で新しい順にした上から4件のみを取得されてしまうため、
「」にヒットしない場合もありやむを得ず、全件取得しています。
該当する記事を4件だけ表示したいが、現在その件数を制限できないため「今日を含む今日以降の開催中記事」が全部表示されています。

何かアドバイスいただけないでしょうか。

返信(6)

| 返信する
  • MTIFの内部で、表示件数を絞ってみましたがいかがでしょうか。



    /*ここに出力する記事の内容*/


  • 消えてしまったのでブログにしました。

    こちらでいかがでしょうか。

    出力回数で表示を変更する方法
    https://cms-note.com/movabletype/mt_counter.html

  • 私が以前書いたプラグインを試してみると、上手く抽出できるような気がしました。
    (数値・文字列前提で作成したので、日付はあまり検討をしていません。)
    https://github.com/hideki-a/mt-plugin-extend-entryfield-filter

    <mt:Entries sort_by="field:endday" field:endday=">=","$today" limit="4">
    <!-- ここに出力する記事の内容 -->
    </mt:Entries>
  • >CMS NOTE 様
    解決方法をブログにまとめていただき誠にありがとうございました。
    しかし、カウントアップが動かないのか、うまく行かなかったです。
    少し変更して以下の様にしたら動くようになりました。
    ---

    <mt:If name="end_day" ge="$today">
    <MTSetVar name="counter" value="1" op="+">
    <mt:If name="counter" le="4">

    /*ここに出力する記事の内容*/

    </mt:If>
    </mt:If>

    ---

    アドバイスいただき誠にありがとうございました。

  • >Hideki Abe 様
    コメントありがとうございます。
    仕様でプラグインを増やすことが出来なかったのですが、
    今後同様のこと等があったときに、活用させていただきたく思います。
    ありがとうございました。

  • 解決して良かったです。
    サンプルテンプレートが欠落していました。申し訳ございません。
    念のため修正しました。返信は不要でございます。

返信する


カテゴリグループ

フォーラムカテゴリー

21 76

最新のトピック: 公開終了日の取り消し (2013年10月18日 gsk)

389 1074

最新のトピック: MTのシェア (2019年3月 2日 toppio)

OpenID対応しています OpenIDについて