wordpress に問題があり、WP_Query を使用して、過去 5 日間に作成された最後の 3 つの投稿をページに取り込みます。
これが私のフィルターで、wp_query の新しいインスタンスをセットアップした場所です。
<?php
get_header();
function filter_where( $where = '' ) {
$where .= " AND post_date > '" . date('Y-m-d', strtotime('-5 days')) . "'";
return $where;
}
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => '3'
);
add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query( $args );
?>
次に、ループを取得しました。
<?php while($query->have_posts()): $query->the_post();?>
<br/>
<i><?php echo get_the_date(); ?></i>
<br/>
<b><?php the_title(); ?></b>
<br/>
<?php the_excerpt(); ?>
<br/>
<?php endwhile; ?>
これはすべてうまく機能します — 3 つの投稿が取り込まれますが、クエリの範囲外の追加の投稿も取り込まれます。
オーバーライドしていないページで別の機能が実行されていますか? このコードはすべてページ テンプレート ファイルに存在します。私が見つけられないように見えるページで実行される魔法のコードがあると思われます。
また、「posts_per_page」またはその他の属性で表示される投稿の数を変更できるため、これらを正しく取得していることはわかっていますが、すり抜けた以前の投稿には影響しません。
ご協力ありがとうございます。必要に応じてさらにコードを提供できます。