统计过去24小时(或今天)内的帖子或自定义帖子类型

时间:2013-07-13 作者:Daniel Foltynek

我想显示当天(过去24小时或今天)发布的自定义帖子类型(或帖子)的计数。我使用此代码段获取“posts”或“custom post type”中所有帖子的数量

<?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小时或今天的计数(表示从午夜到午夜)

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

您可以编写自己的函数(将其添加到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(); ?>

结束

相关推荐

Best way to count visitors?

我想统计一下有多少人访问我的wordpress网站,并想知道以下数据:每天/周/月/年的访问者(有历史记录)哪个子页面/文章吸引了最多的访问者是否有插件可以做到这一点?