Comment déterminer s'il y a une page suivante

11

Je suis un nouveau venu dans le développement wordpress. J'essayais simplement de convertir mon code HTML en un thème WordPress. J'ai commencé avec le thème vierge de Chris Coyer.

<div class="navigation">
    <div class="next-posts">
        <?php next_posts_link('&laquo; Older Entries') ?>
    </div>
    <div class="prev-posts">
        <?php previous_posts_link('Newer Entries &raquo;') ?>
    </div>
</div>

Comment puis-je sortir la div uniquement s'il existe un next_posts_link() . J'ai besoin de cela car je vais utiliser <ul> pour ma pagination. Si je ne le fais pas, j'aurai une balle vide

    
posée Jiew Meng 12.02.2011 - 12:56

3 réponses

16

Vous pouvez utiliser get_previous_posts_link et get_next_posts_link pour déterminer s’ils existent comme ceci:

$prev_link = get_previous_posts_link(__('&laquo; Older Entries'));
$next_link = get_next_posts_link(__('Newer Entries &raquo;'));
// as suggested in comments
if ($prev_link || $next_link) {
  echo '<ul class="navigation">';
  if ($prev_link){
    echo '<li>'.$prev_link .'</li>';
  }
  if ($next_link){
    echo '<li>'.$next_link .'</li>';
  }
  echo '</ul>';
}

J'espère que cela vous aidera

    
réponse donnée Bainternet 12.02.2011 - 13:12
9

Je l'ai écrit il y a un moment, mais je devrais le conserver:

enlace

Vous pouvez ajouter la fonction suivante à votre fichier functions.php :

/**
 * If more than one page exists, return TRUE.
 */
function show_posts_nav() {
    global $wp_query;
    return ($wp_query->max_num_pages > 1);
}

La mise à jour de votre code pour:

<?php if (show_posts_nav()) : ?>
<div class="navigation">
    <div class="next-posts"><?php next_posts_link('&laquo; Older Entries') ?></div>
    <div class="prev-posts"><?php previous_posts_link('Newer Entries &raquo;') ?></div>
</div>
<?php endif; ?>
    
réponse donnée Eric Martin 12.02.2011 - 23:45
0

la meilleure solution consiste à vérifier $wp_query->max_num_pages , mais vous pouvez également utiliser:

<?php
if(paginate_links()) {
...
}
    
réponse donnée Maxwell s.c 09.11.2018 - 17:26

Lire d'autres questions sur les étiquettes