我正在开发一个自定义帖子类型的wordpress网站,让我们说'plops'。我只想在网站上使用这种自定义帖子类型。所以在index.php中,我循环使用WP_Query,这里是代码:
<?php
$args = array( 'post_type' => 'plops', 'posts_per_page' => 30, 'orderby' => 'desc');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
$meta = get_post_meta($post->ID);
?>
// my template for the post...
<?php endwhile; ?>
问题是我想实现对此页面的无限滚动,为此我需要有分页链接。我试图用next_posts_link()
函数实现那些,但不能使它工作!
它只是不会显示任何链接,我尝试了很多东西,似乎没有任何东西可以使它工作......
如果我去mysite.com/worpress/page/2,我的帖子会显示,但我在萤火虫中得到404 ...很奇怪......
有什么想法吗?非常感谢帮助!非常感谢提前!
答案 0 :(得分:2)
下面的修复可能对您有所帮助 - 这对我有用。它结合了Chris Coyier的解决方案和评论中的一些帮助。 CSS Tricks Article
//Fix homepage pagination
if ( get_query_var('paged') ) {
$paged = get_query_var('paged');
} else if ( get_query_var('page') ) {
$paged = get_query_var('page');
} else {
$paged = 1;
}
$args = array('post_type' => 'custom_post_type', 'paged' => $paged );
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query( $args );
while($wp_query->have_posts()) : $wp_query->the_post();
?>
<!-- LOOP: Usual Post Template Stuff Here-->
<?php endwhile; ?>
<nav>
<?php previous_posts_link('« Newer') ?>
<?php next_posts_link('Older »') ?>
</nav>
<?php
$wp_query = null;
$wp_query = $temp; // Reset
?>
答案 1 :(得分:1)
自这个问题发布以来已经有很长一段时间了,但对于那些正在寻找方法在他/她自己的代码中实现这一目标的人来说:
$args = array( 'post_type' => 'plops', 'posts_per_page' => 30, 'order' => 'desc');
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) {
$loop->the_post();
$meta = get_post_meta($post->ID);
// my template for the post...
}
previous_posts_link('« Newer');
next_posts_link('Older »', $loop->max_num_pages);
wp_reset_postdata();
注意:您必须将最大页数传递给next_posts_link
功能。