web-dev-qa-db-fra.com

Afficher Suivant/Précédent lors de la mise en boucle de l'archive de post-types personnalisés?

J'essaie d'afficher les boutons de navigation Suivant/Précédent sur ma page, qui affichent toutes les pages du type de post-type personnalisé de mes événements. Le problème est que les boutons ne sont même pas affichés, mais je ne sais pas pourquoi. Cela fonctionne avec les publications de page de mon blog, mais je me demande si je dois faire quelque chose de différent avec un type de publication personnalisé, étant donné que sa capacité est définie sur "page" au lieu de "publication".

Code:

    <?php
    /* Queue the first post, that way we know
     * what date we're dealing with (if that is the case).
     *
     * We reset this later so we can run the loop
     * properly with a call to rewind_posts().
     */
    if ( have_posts() )
        the_post();
?>

<h1>
    <?php _e( 'Results', 'twentyten' ); ?>
</h1>
<div class="resultDetails">
    <p>Displaying all of our Events:</p>
</div>
<ul>
<?php 
    $paged = get_query_var('paged');
    $paged = ($paged) ? $paged : 1;
?>
<?php $loop = new WP_Query( array( 'post_type' => 'events', 'posts_per_page' => -1, 'paged' => $paged ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

<li class="resultItem">
    <?php if (has_post_thumbnail( $post->ID )): ?>
        <?php $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'full' ); ?>
        <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><img src="<?php bloginfo('template_directory'); ?>/thumbs.php?src=<?php echo $image[0]; ?>&w=120&h=120&zc=1" alt="<?php the_title(); ?>" /></a>
    <?php endif; ?>
    <div id="resultText">
        <h2 class="redSubHeader"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
        <?php the_excerpt(); ?>
    </div>
</li>
<?php endwhile;?>
<nav class="navigation">

    <ul>

        <li class="next-posts post-nav"><?php next_posts_link('Next') ?></li>

        <li class="prev-posts post-nav"><?php previous_posts_link('Prev') ?></li>

    </ul>

</nav>
</ul>

Toute aide serait grandement appréciée!

Merci

2
remi90

next_posts_link() et previous_posts_link() utilisent le $wp_query->max_num_pages global pour déterminer s’il ya plus de pages. puisque vous utilisez une nouvelle instance de WP_Query, le $wp_query global ne se rapporte pas à cette nouvelle requête.

Essayez explicitement de passer $loop->max_num_pages à la fonction:

next_posts_link( 'Next' , $loop->max_num_pages );

ou si vous n'utilisez pas la requête d'origine, appelez query_posts() avec vos arguments au lieu de créer une nouvelle instance WP_Query.

EDIT - aussi, comme @kevin l’a mentionné, posts_per_page mis à -1 chargera tous les articles, vous devrez donc également changer cela pour c'est paginer.

0
Milo