1

サイドバーにカレンダーを表示しようとしています。このカレンダーに表示される投稿には、event_dateというカスタム フィールドがあります。フィールドには、YYYYMMDD のような形式の日付が入力されます。未来の出来事だけが現れるようにしています。

event_date フィールドを持つ投稿のみを表示するという私の最初の計画は成功しました。

<?php
$args = array
  (
  'showposts' => 10,
  'meta_key' => 'event_date',
  'meta_value' => '',
  'meta_compare' => '!='
  );
query_posts( '$args' );
?>

しかし、ここから先に進み、将来のイベントのみを除外する方法がわかりません。もちろん、後で while ループでフィルター処理することもできますが、それはきれいな解決策のようには思えません。

それらを日付で並べ替えることができればさらに驚くべきことですが、それ以外の場合は、配列内のすべてを取り出して、そこから順序を計算します。

yyyymmdd の代わりにタイムスタンプを使用することは、編集者に多くの教育を必要とするため、解決策ではありません。

うまくいけば、誰かが私を正しい方向に向けることができます。よろしくお願いします!

4

1 に答える 1

2

質問を入力すると、常に役に立ちます。わかった!とにかく読んでくれてありがとう!

これが私の解決策です。以前はこれを理解できなかった愚か者です:

<?php
$args = array
(
'showposts' => 10,
'meta_key' => 'event_date',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_value' => date("Ymd", date("U")-3600*24),
'meta_compare' => '>'
);
query_posts( $args );
?>
于 2013-01-24T02:51:47.997 に答える