web-dev-qa-db-fra.com

Faites en sorte que la pagination fonctionne avec des boucles personnalisées dans les modèles de page

J'ai une boucle personnalisée pour laquelle je voudrais une pagination.

Le codex et les exemples que j'ai trouvés en ligne indiquent que je devrais avoir une pagination tant que je transmettrai la variable de requête 'paginée' dans la boucle en tant que variable 'page' (ou 'page' pour une page de garde statique). Cependant, dans mon cas, cela ne fonctionne tout simplement pas.

Je ne travaille pas avec une page de garde statique: juste une page normale.

Ce que je constate, c’est que pour chaque page vers laquelle je navigue, je reçois les mêmes messages.

Voici le modèle avec lequel je travaille:

<div class="container latest-posts group">
    <div class="row">

    <div class="container">     
            <header class="section-header row">
                <div class="col-xs-12">
                    <h2 "><?php the_title()  ?></h2>
                </div>
            </header>
        </div>

        <section id="latest-posts" class="col col-xs-12 col-sm-8 js-masonry">
            <?php
            /*
             *  latest posts
             */
        if ( get_query_var('paged') ) $paged = get_query_var('paged');
            if ( get_query_var('page') ) $paged = get_query_var('page');



            $args = array(
                'posts_per_page' => 7,
                    'offset'    => '5',
                    'paged' => $paged
            ) ;

            $my_query = new WP_Query($args) ;

            while ($my_query->have_posts()) : $my_query->the_post(); ?>
            <article class="frontpage-news-article">
                <div class="inner">
                    <h3>
                        <a href="<?php the_permalink()  ?>">
                            <?php the_title()  ?>
                        </a>
                    </h3>

                    <?php   include( get_stylesheet_directory() . "/templates/post-meta.php") ;   ?>

                    <p><?php  the_excerpt(); ?></p>
                    <p><a href="<?php echo get_permalink()  ?>">read more</a></p>
                </div>
            </article>
            <?php endwhile; ?>

        <?php  
        // Reset postdata
        wp_reset_postdata(); 
        ?>

            <footer class="paging group">
                <?php next_posts_link('&laquo; Older Entries') ?>
                <?php previous_posts_link('Newer Entries &raquo;') ?>

                <?php
                    wp_pagenavi( array(
                        'query' =>$my_query )
                    )
                ?>
            </footer>

        </section> <!-- ENDS #latest-posts  -->

        <aside class="sidebar col-xs-12 col-sm-4 group" role="complementary">
            <ul>
                <?php   dynamic_sidebar('primary') ?>
            </ul>
        </aside><!-- .sidebar -->
    <?php 


    ?>
    </div> <!-- ENDS .container -->
</div>

Comme vous pouvez le constater par le code, j'ai essayé à la fois les appels de pagination natifs de wordpress et wp-pagenavi. Les deux donnent les mêmes résultats indésirables.

1
dave dave

En voyant votre code, vous créez le tableau $args mais ne le passez pas au WP_Query. Essayez d'utiliser le moyen ci-dessous.

$args = array(
     'posts_per_page' => 7,
      'offset'    => '5',
      'paged' => $paged
 ) ;
$my_query =new WP_Query($args);
......
1
Pavan Kumar Pamu