archive.php上的wp_query分页

时间:2017-11-19 20:39:33

标签: php wordpress pagination

我在Wordpress的几个页面上使用以下wp_query,正如您所看到的,我正在尝试确保查询是分页的。一切都在自定义页面模板page-articles.php上成功运行,但是我无法在archive.php模板上获得相同的结果。

分页链接成功呈现(例如mydomain.com/category/my-cat/page/2)但是点击链接后无效,它只会引发404错误?这些链接怎么能不去任何地方?

我假设在archive.php模板上使用自定义wp_query存在一些问题?

谢谢!

查询     

$args = array(
    'post_type'         => 'post',
    'posts_per_page'    => 1,
    'paged'             => $paged,
    'orderby'           => 'date',
    'order'             => 'DESC'
);
$articles = new WP_Query($args );
?>

循环

<?php if ( $articles->have_posts() ) : ?>
   <?php while ( $articles->have_posts() ) : $articles->the_post(); ?>
       Posts here!
   <?php endwhile; ?>
   <?php wp_reset_postdata(); ?>
<?php endif; ?>

分页

<nav>
    <div class="prev"><?php echo get_previous_posts_link( 'Previous', $articles->max_num_pages );   ?></div>
    <div class="next"><?php echo get_next_posts_link( 'Next', $articles->max_num_pages ); ?></div>
</nav>

2 个答案:

答案 0 :(得分:0)

是的,确实如此。

这是因为当您使用WP_QUERY时,archive.php的主查询保持不变。尝试在archive.php。

中使用query_posts()
query_posts($args);

然后默认循环(而不是$ articles)

<?php if ( have_posts() ) : ?>
   <?php while (have_posts() ) : the_post(); ?>
       Posts here!
   <?php endwhile; ?>
   <?php wp_reset_postdata(); ?>
<?php endif; ?>

答案 1 :(得分:0)

经过一些挖掘,并在this article的帮助下,以下解决方案解决了这个问题。只需将它放在你的functions.php文件中就可以了。以下实现适用于自定义帖子类型和类别的归档。

{{1}}