上一页/下一页链接使用wp_query循环

时间:2012-04-21 11:20:40

标签: php wordpress loops

我正在开发一个自定义帖子类型的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 ...很奇怪......

有什么想法吗?非常感谢帮助!非常感谢提前!

2 个答案:

答案 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('&laquo; Newer') ?>
    <?php next_posts_link('Older &raquo;') ?>
</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('&laquo; Newer');
next_posts_link('Older &raquo;', $loop->max_num_pages);

wp_reset_postdata();

注意:您必须将最大页数传递给next_posts_link功能。