在WordPress中获取特定日期范围内发布的文章

15

我正在开发一个小部件,用于显示在两个日期之间发布的文章,例如1月15日到3月15日,但我不知道如何实现。

我看过一些解决方案,提到了query_posts(),但我不认为那是一个好的解决方案。所以我愿意听取任何建议来完成这个功能。

目前,我考虑使用pre_get_posts、WP_Query或get_posts,并尝试使用以下代码:

function my_home_category( $query ) 
{
    if ( $query->is_home() && $query->is_main_query() )
    {
        $query->set( 'day', '15');
    }
}
add_action( 'pre_get_posts', 'my_home_category' );

但是这会返回所有发布日期为每月15日的帖子。我知道我可以设置类似以下内容:

 $query->set( 'monthnum', '1');

我想获取在1月15日发布的帖子,但我想获取所有在1月15日至3月15日之间发布的帖子,我不知道如何实现。

不一定要使用pre_get_posts,也可以使用get_posts或WP_Query,我只是想找到一个简单的方法来实现它。

2个回答

34

0

我刚刚在这里回答了一个问题,结合了原始问题和@johnnyd23的答案中的两种方法:

function my_home_by_period($query) {
    $query->set('date_query', array(
        array(
            'after'  => array(
                'year'   => 2021,
                'month'  => 10,
                'day'    => 1,
            ),
            'before'     => array(
                'year'   => 2021,
                'month'  => 10,
                'day'    => 31,
            ),
            'inclusive'  => true,
        )
    ));
}
add_action('parse_query', 'my_home_by_period');

你可以将“parse_query”替换为“pre_get_posts”,我认为你会得到相同的结果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接