web-dev-qa-db-ja.com

過去24時間(または今日)の投稿またはカスタム投稿の種類を数えます。

その日(過去24時間または今日)公開されたカスタム投稿タイプ(または投稿)の件数を表示します。このスニペットを使用して、「投稿」または「カスタム投稿タイプ」からすべての投稿の数を取得します。

<?php
    $numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE (post_status = 'publish' AND post_type = 'post')");
    if (0 < $numposts) $numposts = number_format($numposts);
?>

テンプレート内:

<?php echo $numposts ?>

しかし、私は過去24時間または今日のためにカウントを表示する方法を知りません(それは真夜中から真夜中までを意味します)

3
Daniel Foltynek

あなた自身の関数を書くことができます(それをfunctions.phpファイルに追加してください:

function get_posts_count_from_last_24h($post_type ='post') {
    global $wpdb;

    $numposts = $wpdb->get_var(
        $wpdb->prepare(
            "SELECT COUNT(ID) ".
            "FROM {$wpdb->posts} ".
            "WHERE ".
                "post_status='publish' ".
                "AND post_type= %s ".
                "AND post_date> %s",
            $post_type, date('Y-m-d H:i:s', strtotime('-24 hours'))
        )
    );
    return $numposts;
}

function get_posts_count_from_today($post_type ='post') {
    global $wpdb;

    $numposts = $wpdb->get_var(
        $wpdb->prepare(
            "SELECT COUNT(ID) ".
            "FROM {$wpdb->posts} ".
            "WHERE post_status='publish' ".
                "AND post_type= %s ".
                "AND DATE_FORMAT(post_date, '%Y-%m-%d') = %s",
            $post_type, date('Y-m-d', time())
        )
    );
    return $numposts;
}

そしてそれをテンプレートで使用します。

<?php echo get_posts_count_from_last_24h(); ?>
<?php echo get_posts_count_from_today(); ?>
5