我想我已经找到了最有效的方法。棘手的是,您需要查询日期范围内的帖子,以便:
A、 匹配当前查询。如果您正在查看一个类别或标签,那么您希望获得该类别或标签中当天的帖子。
B、 不受当前每页帖子设置的限制。如果你在一天内发布超过一页的帖子,那么这个数字需要反映出来。
您也不需要查询与这些帖子相关的所有帖子数据。你只是在数数。
我想到的解决方案是:
获取当前查询翻页将其设置为仅返回post ID添加日期查询,将其限制为从当天开始的帖子它经过测试,运行良好。
为此,我们可以访问global $wp_query
然后获取$wp_query->query_vars
对于当前查询参数。然后,我们按照上面所述修改参数,并将新参数传递给get_posts()
. 然后我们只计算结果。这是一个执行以下操作的函数:
function wpse_287363_get_posts_today_count() {
global $wp_query;
// Get query arguments for current main query.
$args = $wp_query->query_vars;
// Set new values for relevant arguments.
$arg_amendments = array(
\'fields\' => \'ids\',
\'nopaging\' => true,
\'date_query\' => array(
array(
\'after\' => \'today\',
\'before\' => \'tomorrow - 1 second\',
\'inclusive\' => true,
),
),
);
// Replace relevant arguments in existing arguments with amended arguments.
$new_args = array_merge( $args, $arg_amendments );
// Get posts with new arguments.
$post_ids = get_posts( $new_args );
// Count results.
$count = count( $post_ids );
// Return count.
return $count;
}
现在您可以使用
wpse_287363_get_posts_today_count()
获取当前日期发布的帖子数量,与您正在查看的存档相关。
因此,如果你在分类档案中,它将返回今天在该分类中发表的帖子数量。在标签存档中,它将返回今天在该标签中发表的帖子数。它甚至可以处理日期档案,并显示特定年份/月份今天发布的帖子数量。如果你只是在博客页面上,它会显示今天在任何类别或标签中发表的帖子数量。它甚至可以与自定义的帖子类型/分类归档一起使用。