前些时在群里聊天,有个朋友在群里问:WordPress怎么获取到今日发布的文章数量,我嫌麻烦没有理会。
WordPress获取本周/今日/24小时内更新的文章数量

今天在做wordpress博客文章统计的时候,自己刚好要用到,于是在网上搜了搜,整理了一下几种文章统计的方式:

获取本周发布的文章数量

//WordPress获取本周发布的文章数量

function get_week_post_count(){
    $date_query = array(
        array(
            \'after\'=>\'1 week ago\'
        )
    );$args = array(
        \'post_type\' => \'post\',
        \'post_status\'=>\'publish\',
        \'date_query\' => $date_query,
        \'no_found_rows\' => true,
        \'suppress_filters\' => true,
        \'fields\'=>\'ids\',
        \'posts_per_page\'=>-1
    );
    $query = new WP_Query( $args );
    return $query->post_count;
}

使用方法:

将上面获取本周发布的文章数量代码添加到当前主题的 functions.php

<?php echo get_week_post_count()?>

获取今天发布的文章数量

//WordPress获取今天更新的文章数量

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;
}

使用方法

将上面获取今天发布的文章数量代码添加到当前主题的 functions.php ,然后在需要调用的地方使用下面的代码即可:

<?php echo get_today_post_count()?>

上面代码为获取默认为“post”这个文章类型,如果你要获取其他文章类型,比如 site,可以这样用:

<?php echo get_posts_count_from_today(\'site\'); ?>

获取最近24小时发布的文章数量

//WordPress获取最近24小时发布的文章数量 
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;
}

使用方法

将上面获取最近24小发布文的章数量代码添加到当前主题的 functions.php ,然后在需要调用的地方使用下面的代码即可

<?php echo get_posts_count_from_last_24h(); ?>

上面代码为获取默认为“post”这个文章类型,如果你要获取其他文章类型,比如 site,可以这样用:

<?php echo get_posts_count_from_last_24h(\'site\'); ?>