【发布时间】:2021-01-05 18:31:05
【问题描述】:
我想显示帖子类型中的帖子总数,但将其限制为最近 7 天。
这是我当前的代码,成功显示了自定义帖子类型中的帖子总数。
<?php $published_posts = wp_count_posts($type = 'games')->publish; echo $published_posts;?>
有没有办法通过传递额外的参数?怎么办?
【问题讨论】:
我想显示帖子类型中的帖子总数,但将其限制为最近 7 天。
这是我当前的代码,成功显示了自定义帖子类型中的帖子总数。
<?php $published_posts = wp_count_posts($type = 'games')->publish; echo $published_posts;?>
有没有办法通过传递额外的参数?怎么办?
【问题讨论】:
不幸的是,wp_count_posts() 不会让您到达那里,它只会为您提供所有 post_type 的固定数字(以及它是否可读)。
WP_Query 类一开始似乎有点吓人,但它应该可以满足您的需求,因为它内置了更精细的控制,即Date Parameters。
初始化WP_Query 后,您可以使用found_posts 属性(不是post_count!)查看它返回了多少帖子。类似于以下内容:
$week_query_args = array(
'posts_per_page' => -1, // No limit
'fields' => 'ids', // Reduce memory footprint
'post_type' => 'your_post_type',
'date_query' => array(
array( 'after' => '1 week ago' )
)
);
$week_query = new WP_Query( $week_query_args );
echo "We have {$week_query->found_posts} for the past 7 days";
【讨论】:
<?php $querystr = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type = 'games' AND post_date >= DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) LIMIT 0, 30"); if (0 < $querystr) $querystr = number_format($querystr); echo $querystr.' last 7 days';?>