nana

「日付と時刻」カスタムフィールドの値を元に2か月以内の記事のみを出力したい

0

はじめまして。

「日付と時刻」カスタムフィールドの値を元に
1か月以内の記事のみを出力したいと考えているのですが、

 days="N"
などを使ってもうまくいかず
どのように出力すればよいか悩んでおります。

お知恵をお貸しいただけないでしょうか。
どうぞよろしくお願いいたします。

返信(3)

| 返信する
  • 「days="N"」だと、記事の公開日にしか使えないと思います。

    カスタムフィールドで絞り込むのであれば、
    で1ヶ月以内の日かどうか比較してみてください。

  • RSK様

    ご助言ありがとうございます!
    感謝致します。

    「1ヶ月以内の日かどうか比較」ということで
    こちらの記事などを参考にためしてみたのですが、
    「再構築日+一か月以内」の数値がうまくとれていないのか
    全ての記事が出力されてしまいました。
    https://45shiki.net/blog/2010/06/b000957.html

    そもそもの書き方が悪いのか、なにかヒントを頂けましたら
    大変うれしいです。
    どうぞよろしくお願いいたします。


    <mt:Entries>

    <MTSetVarBlock name="field"><mt:(カスタムフィールドの日付と時刻) format="%Y%m%d%H%M%S"></MTSetVarBlock>
    <$mt:Date format="%Y%m%d%H%M%S" setvar="rebuild_date" value="30000000" op="+"$>

    <MTIf name="field" lt="rebuild_date$"$>
    <$mt:EntryTitle$>
    </MTIf>

    </mt:Entries>

  • うまく行かないときは、実際に変数の値を出力して確認してみるといいです。

    この例でいうと

    <$mt:Date format="%Y%m%d%H%M%S" setvar="rebuild_date" value="30000000" op="+"$>

    ↑は、実際には30000000は足されずにそのままになっています。
    なので結果としてすべての記事が出力されています。
    一旦変数に入れてから、足してみてください。


    <$mt:Date format="%Y%m%d%H%M%S" setvar="rebuild_date"$>
    <$mt:Var format="%Y%m%d%H%M%S" value="30000000" op="+" setvar="rebuild_date"$>


    ただこのままだとおかしい場合が出てきます。
    本日0922の値に30を足すと、0952というありえない日付になってしまいうまく比較できません。

    その場合、「%j」をつかって年内の総日数と年*365を足してやると
    うまく比較できると思います。

    ただうるう年まで考慮するともうチョット複雑になりますが、、、、

返信する


カテゴリグループ

106 23

最新のトピック: test (2019年5月29日 sato)

フォーラムカテゴリー

21 76

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

291 839

最新のトピック: CustomFieldsSearchで (2021年7月21日 takaraism)

176 500

最新のトピック: MT7の投稿画面で使用済みタグの表示 (2021年9月21日 css)

409 1112

最新のトピック: 環境変数の設定「DisableResourceField (2021年8月 5日 mutsuka)

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