Pagination for two loops

时间:2012-11-24 作者:Victor

我知道之前已经讨论过这个问题,但我似乎无法将它与其他主题中发布的任何解决方案配合使用。

如何对这样的循环进行分页:

        <div id="first-loop-container">
        <?php $my_query = new WP_Query(\'showposts=5\'); ?>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <h4>" title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); ?>
        <?php endwhile; ?>
        </div>

        <div id="second-loop-container">
        <?php $my_query = new WP_Query(\'showposts=5&offset=5\'); ?>
        <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
        <h4>" title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); ?>
        <?php endwhile; ?>
        </div>


<?php
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
    \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
    \'format\' => \'?paged=%#%\',
    \'prev_text\' => __(\'« Previous\'),
    \'next_text\' => __(\'Next »\'),
    \'current\' => max( 1, get_query_var(\'paged\') ),
    \'total\' => $wp_query->max_num_pages
) );
?>
我希望第一页显示10个独特的帖子(第一个循环中有5个,第二个循环中有5个),第二页显示接下来的10个独特的帖子(和以前一样),依此类推。

非常感谢。

更新:添加了分页。

2 个回复
SO网友:s_ha_dum

您还必须将分页参数传递给查询。事实上,你只是在拉5根柱子。默认情况下,这将是最近的五次。然后,另一个查询提取接下来的五个。您试图对两个循环进行分页,这一事实使得这比正常情况下更加棘手。然而

起初,我以为你在拉两个不同的帖子类型或类别,但看起来你只是在创建两个相同类型的循环——没有参数可以做任何不同的事情。您可以将其简化为单个查询,并简化分页。

$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;
$my_query = new WP_Query( 
    array(
        \'showposts\'=>10,
        \'paged\'    => $paged 
    )
); 

?>
<div id="first-loop-container">
    <?php 
    $i = 0;
    while (5 >= $i) : 
        $my_query->the_post(); ?>
        <h4 title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); 
        $i++; ?>
    <?php endwhile; ?>
</div>
<div id="second-loop-container">
    <?php 
    $i = 0;
    while ($my_query->have_posts()) : 
        $my_query->the_post(); ?>
        <h4 title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); 
        $i++; ?>
    <?php endwhile; ?>
</div><?php

$big = 999999999; // need an unlikely integer

  echo paginate_links( array(
        \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
        \'format\' => \'?paged=%#%\',
        \'prev_text\' => __(\'« Previous\'),
        \'next_text\' => __(\'Next »\'),
        \'current\' => max( 1, get_query_var(\'paged\') ),
        \'total\' => $my_query->max_num_pages
    ) );
你开始抓起你的pagination parameters and saving them to $paged. 你在你的single 查询接下来,运行查询结果中的前五篇文章,然后是第二篇文章。你可以在这两者之间做任何你想做的事,只要你不重击或重置$my_query. 然后分页。您试图使用global $wp_query, 这是错误的,因为你正在尝试分页$my_query, 所以我改了。我还用您的<h4> 标签

看看效果是否更好。

SO网友:Victor

非常感谢您的回答。

出于某种原因,也许我在我的页面中实现了错误的代码,它不起作用。它创建了一个无限长的页面,无限复制我的第一篇帖子。

但幸运的是,我结合了有关此问题的不同教程中的一些代码,得出了一个对我有用的代码:

    <div id="first-loop-container">
<?php if (have_posts()) : ?>
<?php $count = 0; ?>

<?php while (have_posts()) : the_post(); ?>
<?php $count++; ?>

<?php if ($count <= 5) : ?>
<h4 title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); 
    <?php endif; endwhile; ?>
</div>


<div id="second-loop-container">
<?php rewind_posts();
$cnt = 0;
while (have_posts()) : the_post(); if ($cnt >= 5 ): ?>
<h4 title="<?php the_title(); ?>"><?php the_title(); ?></h4>
        <?php the_content(" More...",TRUE,\'\'); 
<?php endif; $cnt++; endwhile; ?>

</div>

<?php
global $wp_query;

$big = 999999999; // need an unlikely integer

echo paginate_links( array(
    \'base\' => str_replace( $big, \'%#%\', esc_url( get_pagenum_link( $big ) ) ),
    \'format\' => \'?paged=%#%\',
    \'prev_text\' => __(\'&laquo; Inapoi\'),
    \'next_text\' => __(\'Urmatoarea &raquo;\'),
    \'current\' => max( 1, get_query_var(\'paged\') ),
    \'total\' => $wp_query->max_num_pages
) );
?>
<?php else : ?>
<?php endif; ?>
我只希望我的代码是有效的,但只要它做的工作。。。

无论如何,再次感谢你的回答。

结束

相关推荐

获取最新创建的自定义类别(GET_TERM_BY和变量)(Out Loop)

我想知道为什么下面的代码不能工作?我的情况:我设置了一个名为“问题”的自定义类别。我想做的是获取最新创建的类别(即“第2卷第1期”)并获取其ID,以便运行plugin 作用z_taxonomy_image_url($currentID); 它根据以下项标识的类别输出URL:$currentID目前我有一个非常黑客的解决方案,但如果有人能找出下面代码的最后3行为什么不起作用,那就太棒了。我们也希望有替代和更清洁的解决方案。$taxonomy=wp_list_categories(\'taxonomy=iss