web-dev-qa-db-ja.com

特定の日に投稿を取得する方法 - WPクエリ

特定の日付の投稿を取得したいのですが、次のコードを試してみましたが、望んだ結果が得られませんでした。

<?php
$mil = 1532996880000;
$seconds = $mil / 1000;
$dt = date( "Y-m-d", $seconds );

$post_by_date = $wpdb->get_row("
    SELECT * FROM {$wpdb->posts}
    WHERE post_date = $dt
    AND post_status = 'publish'
");

WP QUERY

$posts = get_posts(array(
    'post_type' => 'post',
    'date' => $dt,
    'posts_per_page' => 1
));

$dt = 2018-07-31の出力には結果が表示されないため、これは機能しませんでした。 2018-07-31 09:09:40と比較しているからです。それでは、特定の日付の投稿を取得する方法はありますか?

1
topper1309
<?php
//  primarily get $year, $month and $day
$args = array(
    'date_query' => array(
        'year'  => $year,
        'month' => $month,
        'day'   => $day,
    )
);

$query = new WP_Query( $args );

if ( $query->have_posts() ) {
    while ( $query->have_posts() ) {

        // do whatever here

    }
}
1
Max Yudin

そのために日付クエリを使用してくださいまたそれがあなたのために働くことを願って以下のコードを使用

$mil = 1532996880000;
$seconds = $mil / 1000;
$dt = date( "Y-m-d", $seconds );
 $year =  date( "Y", $seconds );
 $month =  date( "m", $seconds ); 
 $day =  date( "d", $seconds );


$args = array(
 'date_query' => array(
  array(
   'year'  => $year,
   'month' => $month,
   'day'   =>$day,
  ),
 ),
);
$query = new WP_Query( $args );

// The Loop
if ( $query->have_posts() ) {
    echo '<ul>';
    while ( $query->have_posts() ) {
        $query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
    /* Restore original Post Data */
    wp_reset_postdata();
} else {
    // no posts found
}
1
Trilok