创建一个仅显示当天帖子的wordpress循环

时间:2013-02-25 21:08:10

标签: wordpress loops

我目前有一个只显示1个帖子的页面,因为我希望每天有1个帖子,并且出现在敬意上。

我决定一天有多个帖子,但我只希望主页只显示当天的帖子。

我的循环中有什么可以改变来实现这个目标?

我的网站http://thatshitsawesome.com仅供参考。

1 个答案:

答案 0 :(得分:1)

首先,您必须增加最多显示的可见帖子数量。我假设您已经知道如何执行此操作,因为您已设法将其限制为每个查询一个。要完成,您可以使用查询参数中的posts_per_page条件或管理面板中设置下的“最多显示博客页面”值进行更改如果要使用默认值。

要将帖子限制为当天,请使用WP_Query参考中定义的某些特定时间参数。您需要条件yearmonthnumday

示例:

<?php 
// Limit query posts to the current day
$args = array(
    'year' => (int) date( 'Y' ),    
    'monthnum' => (int) date( 'n' ),    
    'day' => (int) date( 'j' ), 
);

$query = new WP_Query( $args );

// The Loop
while ( $query->have_posts() ) :
    $query->the_post();

    // ...
endwhile;
?>

如果您没有使用显式查询但依赖于内部WP查询,则更改内部查询的常用方法是使用pre_get_posts操作。将以下功能添加到您的 functions.php 文件中,仅显示当天的帖子,并且仅显示在首页上。

示例:

<?php
function limit_posts_to_current_day( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'year', (int) date( 'Y' ) );
        $query->set( 'monthnum', (int) date( 'n' ) );
        $query->set( 'day', (int) date( 'j' ) );
    }
}
add_action( 'pre_get_posts', 'limit_posts_to_current_day' );
?>