我目前有一个只显示1个帖子的页面,因为我希望每天有1个帖子,并且出现在敬意上。
我决定一天有多个帖子,但我只希望主页只显示当天的帖子。
我的循环中有什么可以改变来实现这个目标?
我的网站http://thatshitsawesome.com仅供参考。
答案 0 :(得分:1)
首先,您必须增加最多显示的可见帖子数量。我假设您已经知道如何执行此操作,因为您已设法将其限制为每个查询一个。要完成,您可以使用查询参数中的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' );
?>