从当前周(周日至周六)获取帖子

时间:2014-09-22 作者:Libin

我正在努力从本周获取帖子。

<?php 
    $args = array(
        \'date_query\' => array(
            array(
                \'year\' => date( \'Y\' ),
                 \'week\' => date( \'W\' ),
            ),
        ),
        \'post_type\' => \'stars\', \'posts_per_page\' => 99, \'order\' => \'DEC\',
    );
    $loop = new WP_Query( $args );
?>
此代码正在从Monday to Sunday (在常规设置中,每周的开始日期为“星期一”。)但当我把一周的开始日期改为“Sunday“在常规设置中,上述代码不会获取任何帖子。

我提到this codex 这让我想到this MySQL function. 但我不确定如何在我的查询中实现这一点。

有什么想法吗?

2 个回复
最合适的回答,由SO网友:birgire 整理而成

您可以尝试:

\'date_query\' => array(
    array(
        \'year\' => date( \'Y\' ),
        \'week\' => strftime( \'%U\' ),
    ),
 ),
在哪里%U 是:

给定年份的周数,从第一个星期日开始作为第一周

\'date_query\' => array(
    array(
        \'after\' => strtotime( \'last Sunday\' ),
    ),
 ),

SO网友:Robert hue

这可能是因为新的一周已经开始,WordPress正试图从上周日(昨天)到周六获取帖子。

如果你只想要上周的帖子,为什么不试着取回最后7天的帖子呢。像这样。

$args = array(
    \'date_query\' => array(
        array(
            \'column\' => \'post_date_gmt\',
            \'after\' => \'7 days ago\'
        )
    ),
    \'post_type\' => \'stars\',
    \'posts_per_page\' => \'99\',
    \'order\' => \'DEC\',
    \'ignore_sticky_posts\' => 1
);

$new_query = new WP_Query ( $args );

结束

相关推荐

Show posts without term

我在一个产品页面上工作,如果产品页面标题与我在分类法“review product”中的术语相匹配,我将显示来自我的帖子类型“reviews”的评论。Example.产品页面标题:Refrigerator显示(审阅)带有以下内容的帖子:帖子类型:“评论”分类:“评论产品”术语:Refrigerator这完全可以。但有时我没有对产品的评论(因为产品名称和术语不匹配),然后我想显示“一般”评论。在我的网站中,这些帖子包含:帖子类型:“评论”分类:“评论产品”术语:No term (!!!)这篇文章没有分类法中