WordPress 3.9 "Smith"です。私は 新しいArchiveページを実装しようとしています per の提案 @Miloの/.
$categories = get_categories( $cat_args ); //it's NOT important for the Q, as it's fetching perfectly
foreach( $categories as $category ) {
$args = array(
'posts_per_page' => -1,
'category__in' => array( $category->term_id ),
'ignore_sticky_posts' => 1,
'post_status' => 'publish',
'date_query' => array(
array(
'after' => array(
'year' => 2014,
'month' => 01,
'day' => 25,
),
'before' => array(
'year' => 2014,
'month' => 01,
'day' => 25,
),
'inclusive' => true,
),
)
);
$posts = get_posts( $args );
var_dump($posts);
}
Miloの提案でハードコードされた日付を動的にしますが、このハードコードではvar_dump($posts)
はempty配列を表示しています。
私はフォローしています Viper007Bond.comのチュートリアル on WP date_query
そしてJan25とJan22に投稿しました。 day
の値を22,24,25などから変更してみましたが、結果は空の配列です。
そしてもちろん私がここに貼り付けたコードは私のURLがあるarchive.php
からのものです:
http://localhost/project_name/date/2014/01/25/
'date_query'
引数はAND
またはOR
であることができる 'relation'である追加のオプションを取ります。
'inclusive'をtrueに設定し、 'before'と 'after'にまったく同じ日付を使用する関係OR
your codeを考慮すると、すべての投稿を返すはずです。日付より前の投稿+その日付以降の投稿+その日付の投稿。
関係ANDを考えれば、それはpost_date >= date && post_date <= date
で要約することができ、それは日付自体に当てはまりますが、おそらくそのような問い合わせを妨げる、正直なところ、日付問い合わせクラスに何かがあります(私はコアを掘り下げません)。意味がありません。
理由は簡単です。特定の日付を照会したいのであれば、前後に使用する必要がまったくない場合は、表示したい年、月、日の配列を作成するだけです。
$args = array(
'date_query' => array(
array(
'year' => 2012,
'month' => 12,
'day' => 12,
),
),
);
$query = new WP_Query( $args );
上記のコードは、 Codex の日付クエリパラメータの2番目の例から引用したものです。