web-dev-qa-db-fra.com

previous_post_link () et next_post_link () avec un type de publication personnalisé?

Je suis sur single-work.php pour un type d'article personnalisé appelé work, à l'intérieur de la boucle.

Essayer de faire deux liens vers le post précédent et suivant.

En utilisant ce code:

<?php previous_post_link(); ?>

et

<?php next_post_link(); ?>

Mais rien ne se présente. Est-ce que je manque quelque chose

Voici mon code, très simple:

<?php get_header(); ?>
<div class="full" >

<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

    <?php next_post_link('%link', 'Next post »'); ?>
<?php next_post_link('%link', 'Next post »'); ?>

<?php endwhile; // end of the loop. ?>

</div><!--/full-->  
<?php get_footer(); ?>
3
wesbos

Ce que je vois dans votre code, c'est que votre prochain article et vos précédents articles apparaissent dans la boucle while, ce qui ne devrait pas être dans la boucle et devrait ressembler à ceci:

<?php get_header(); ?>
<div class="full" >
<?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<?php endwhile; // end of the loop. ?>
<?php next_post_link('%link', 'Next post »'); ?>
<?php next_post_link('%link', 'Next post »'); ?>
</div><!--/full-->  
<?php get_footer(); ?>

Ou, vous pouvez le trouver en détail ici .

Dans le post ci-dessus, j'ai trouvé une pagination numérique, mais cela explique tout de même le fonctionnement exact de la pagination, ce qui est très détaillé.

3
wpmemorize

Les fonctions sont justes; définir les paramètres

<?php next_post_link('%link', 'Next post »'); ?>

<?php next_post_link('%link', 'Next post »'); ?>

Eh bien, sans voir votre code, il est difficile de dire pourquoi. Y a-t-il des erreurs ou des avertissements PHP?

Mettre à jour

Un petit exemple

<?php query_posts( array( 'post_type' => 'page', 'post_status' => 'publish' ) ) ?>
<?php if ( have_posts() ) : ?>

    <?php while ( have_posts() ) : the_post() ?>
        <!-- do stuff -->

    <div id="nav-single">
        <div class="left"><?php previous_post_link(); ?></div>
        <div class="right"><?php next_post_link(); ?></div>
    </div>

    <?php endwhile; // end of the loop. ?>
    <?php wp_reset_query(); ?>

<?php else : ?>

    <!-- do other stuff here -->

<?php endif ?>
1
bueltge

Lisez la documentation .

Cette fonction ne fonctionnera pas (échouera silencieusement) si mysql.trace_mode est activé dans votre php.ini. Si vous ne pouvez pas éditer ce fichier, essayez d'ajouter

ini_set( 'mysql.trace_mode', 0 ); to your theme's functions.php.

Cela pourrait résoudre votre problème, il l'a fait pour moi.

1
Marcus Lauritsen