0

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

我决定在一天内发布多个帖子,但我只希望主页仅显示当天的帖子。

在我的循环中我可以改变什么来完成这个?

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

4

1 回答 1

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' );
?>
于 2013-02-25T22:03:42.047 回答