我有以下代码,问题是当单击“下一步”时,paginate_links 返回相同的 10 个结果。网址发生变化,我可以看到它计算了正确的分页,因此它知道那里有哪些帖子(事件)。我是否需要将某些内容解析到 paginate_links 数组中,以便它知道它是它正在处理的事件帖子?
<?php
$today = date('Ymd');
$wp_query = new WP_Query(array(
'post_type' => 'event',
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'nopaging' => false,
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today,
'type' => 'numeric'
)
)
));
while($wp_query->have_posts()) {
$wp_query->the_post();
?>
<div class="event-summary">
<a class="event-summary__date" href="<?php the_permalink(); ?>">
<span class="event-summary__day"><?php
$eventDate = new DateTime(get_field('event_date'));
echo $eventDate->format('d') ?></span>
<span class="event-summary__month"><?php echo $eventDate->format('M') ?></span>
<span class="event-summary__year"><?php echo $eventDate->format('Y') ?></span>
</a>
<div class="event-summary__content">
<h5 class="event-summary__title headline headline--tiny"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h5>
<p class="event-summary__excerpt"><?php if (has_excerpt()) {
echo get_the_excerpt();
} else {
echo wp_trim_words(get_the_content(), 18);
} ?> <a href="<?php the_permalink(); ?>" class="">Læs mere</a></p>
</div>
</div>
<?php
}
echo paginate_links(array(
'prev_text' => '<span>« Previous</span>',
'next_text' => '<span>Next »</span>'
));
?>
为了使查询显示下一页,您需要使用
paged
键将当前页面索引包含到查询中。当您转到下一页时,这将发生变化,有效地显示接下来的 x 篇帖子。
添加
posts_per_page
来指示 何时 下一页可用也是一个好主意。
$paged = get_query_var('paged') ? (int) get_query_var('paged') : 1;
$wp_query = new WP_Query(array(
'post_type' => 'event',
'paged' => $paged,
'posts_per_page' => 5,
'meta_key' => 'event_date',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'nopaging' => false,
'meta_query' => array(
array(
'key' => 'event_date',
'compare' => '>=',
'value' => $today,
'type' => 'numeric'
)
)
));