我目前有一个页面只显示 1 个帖子,因为我希望每天有 1 个帖子并显示在敬意上。
我决定在一天内发布多个帖子,但我只希望主页仅显示当天的帖子。
在我的循环中我可以改变什么来完成这个?
我的网站是http://thatshitsawesome.com供参考。
我目前有一个页面只显示 1 个帖子,因为我希望每天有 1 个帖子并显示在敬意上。
我决定在一天内发布多个帖子,但我只希望主页仅显示当天的帖子。
在我的循环中我可以改变什么来完成这个?
我的网站是http://thatshitsawesome.com供参考。
首先,您必须增加最多显示的可见帖子的数量。我假设您已经知道如何执行此操作,因为您已设法将其限制为每个查询一个。为了完成,您可以使用posts_per_page
查询参数中的条件或在管理面板设置下设置的“博客页面最多显示”值中更改它,如果您想使用默认值。
要将帖子限制在当天,请使用WP_Query参考中定义的一些特定时间参数。您需要条件和。year
monthnum
day
例子:
<?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' );
?>