0

現在、1 日に 1 つの投稿を表示し、オマージュに表示するため、1 つの投稿のみを表示するページがあります。

1 日に複数の投稿を行うことにしましたが、ホームページには当日の投稿のみを表示したいだけです。

これを達成するためにループ内で何を変更できますか?

参考までに、私のサイトはhttp://thatshitsawesome.comです。

4

1 に答える 1

1

まず、最大で表示される投稿の数を増やす必要があります。クエリごとに1つに制限することができたので、これを行う方法をすでに知っていると思います。完了するにposts_per_pageは、クエリ引数の条件を使用するか、デフォルト値を使用する場合は管理パネルの設定で設定された「ブログページが最大で表示される」値を使用して変更できます。

投稿を現在の日に制限するには、 WP_Queryリファレンスで定義されている特定のTimeパラメータを使用します。との条件が必要です。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 に答える