分页显示所有页面的相同内容

时间:2014-02-07 作者:IFightCode

这是我的循环

        $my_query = new WP_Query(array(
                \'cat\' => -399,
                \'posts_per_page\' => 6,
                \'offset\' => 5,
                \'paged\' => (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1
        ));
        if ( $my_query->have_posts() ) : while ( $my_query->have_posts() ) : $my_query->the_post(); 
            $imgurl = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
            $finalurl = get_stylesheet_directory_uri(). "/functions/thumb.php?w=180&h=180&a=t&src=".$imgurl;
            $date = get_the_date(); 
            $id = $post->ID;
        ?>
        .... loop contents ....

        <?php $finalurl = "";
        endwhile;
        else: ?>
        <p><?php _e(\'Sorry, no posts matched your criteria.\'); ?></p>
        <?php endif; wp_reset_query();
        $id = ""; wp_pagenavi();
分页在所有页面中显示相同的内容。我需要你的建议。

3 个回复
最合适的回答,由SO网友:Devin Walker 整理而成

尝试更改$my_query$wp_query 看看这是否解决了问题。我发现,当您重命名查询时,它会弄乱分页。

您还应该在分页后移动重置查询。以下是我验证过的一个分页循环:

$args = array(
    \'posts_per_page\' => 10,
    \'post_type\'      => \'post\',
    \'paged\'          => get_query_var( \'paged\' ),
);
$wp_query = new WP_Query( $args );
while ( $wp_query->have_posts() ) : $wp_query->the_post();
    get_template_part( \'templates/content\', \'posts\' );
endwhile;

/*
  PAGINATION
*/
if ( function_exists( \'page_navi\' ) ) {
    ?>

    <div id="pagination">
        <?php page_navi(); ?>
    </div>
<?php }
wp_reset_query(); ?>

SO网友:moyu

如果您在头版使用wp\\u pagenvi,是的,它将不起作用。您需要在wp\\U pagenavi功能中更改当前页面,如下所示:

//我更改了下面的代码,您可以看到与您的不同之处。

if(!empty($paged)) {
    $paged = $paged;
}elseif(get_query_var( \'paged\')) {
    $paged = get_query_var(\'paged\');
}elseif(get_query_var( \'page\')) {
    $paged = get_query_var(\'page\');
}else {
    $paged = 1;
}

SO网友:Arun Basil Lal

这里是对Devin Walker的答案的改进。这是专门用于存档的。php,但可以适应其他循环。

它还使用WordPress的本地导航链接,而不是page\\u navi()

希望这对别人有帮助。

<?php
/**
 * Archive Page
 *
 * @Since   1.0
 */

// Exit if accessed directly
if ( !defined(\'ABSPATH\')) exit;
?>

<?php get_header(); ?>

<div class="container">
    <div class="row">
        <?php 

        // Note - Set number of posts per page in WP-Admin > Settings > Reading > \'Blog pages show at most\'
        $args = array(
            \'post_type\'                 => \'post\',
            \'paged\'                     => get_query_var(\'paged\'),
            \'cat\'                       => get_query_var(\'cat\'),
        );

        $wp_query = new WP_Query( $args );

        while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>

            <div class="col-md-4 post-card archive my-4">

                <div class="text-center">
                    <a href="<?php the_permalink(); ?>"><img src="<?php echo the_post_thumbnail_url(\'card-size\'); ?>"></a>
                </div>
                <div class="post-card-details archive-post-details px-4 pb-2">
                    <h3 class="post-card-category px-4 py-2"><?php single_cat_title(); ?></h3>
                    <h3 class="post-card-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
                    <p class="post-card-p"><?php echo apply_filters( \'the_content\', wp_trim_words( strip_tags( get_post_field(\'post_content\') ), 15 ) ); ?></p>
                </div>

            </div>

        <?php endwhile; ?>

    </div>

    <!-- Navigation -->
    <div class="tablet-pill tablet-pill-purple mb-5"><?php previous_posts_link( \'Previous Page\' ); ?> <?php if(get_previous_posts_link() && get_next_posts_link()) echo \' - \'; ?> <?php next_posts_link( \'Next Page\' ); ?></div>

    <?php wp_reset_query(); ?>

</div>

<?php get_footer();

结束

相关推荐

Pagination for user list

我使用get_user() 作用但我需要把结果分页。我试了很多,但没有成功。下面是代码,它没有按预期工作:$args = array( \'meta_query\' => array( array( \'key\' => \'ib_s2member_custom_fields\', \'value\' => trim($_GET[\"country\"]), \'compare\' => \