我有一个名为“books”的自定义帖子类型,并在静态首页中显示此类型的所有帖子。我的问题是,我试图进行分页,但我在internet上找到的所有功能都无法工作。这是我的代码,像prev\\u next\\u posts\\u link()这样的函数无法工作。我做错了什么?
$paged = ( get_query_var( \'page\' ) ) ? get_query_var( \'page\' ) : 1;
$args = array(
\'post_type\' => \'books\',
\'posts_per_page\' => 8,
\'paged\' => $paged
);
$loop = new WP_Query( $args );?>
while ( $loop->have_posts() ) : $loop->the_post();
// some code
endwhile; ?>
<?php if ($loop->max_num_pages > 1) { var_dump($loop->max_num_pages);?>
<nav class="prev-next-posts">
<div class="prev-posts-link">
<?php echo get_next_posts_link( \'Older Entries\', $loop->max_num_pages ); // display older posts link ?>
</div>
<div class="next-posts-link">
<?php echo get_previous_posts_link( \'Newer Entries\' ); // display newer posts link ?>
</div>
<div>
<?php the_posts_pagination(array(
\'mid_size\' => 2,
\'prev_text\' => __( \'Back\', \'textdomain\' ),
\'next_text\' => __( \'Onward\', \'textdomain\' ),
)); ?>
</div>
</nav>
最合适的回答,由SO网友:Ranuka 整理而成
不要创建新查询。您可以使用pre_get_posts 对于此类工程。
示例:如果要将书籍和电影自定义帖子类型添加到主页主循环,
function books_movies_cpt_in_home($query) {
if ($query->is_home() && $query->is_main_query()) {
$query->set(\'post_type\', array(\'books\',\'movies\'));
}
}
add_action(\'pre_get_posts\', \'books_movies_cpt_in_home\');