web-dev-qa-db-fra.com

Pourquoi la pagination passe-t-elle sur une page vierge lors de la navigation dans home.php?

Apprendre à créer des thèmes WordPress à partir de rien J'ai rencontré un problème lorsque j'essaie de coder mon home.php. Le problème que je rencontre est avec la pagination. Après la dernière page de publications au lieu d’arrêter/de désactiver le bouton, le bouton est toujours activé. Une fois que vous avez cliqué dessus, le /page/# a été chargé en utilisant le fichier index.php qui, à l’heure actuelle, ne contient que les <?php get_header(); ?> et <?php get_footer(); ?>. Les fonctions que j'ai testées sont avec <?php next_posts_link(); ?> et <?php echo get_next_posts_link(); ?>. J'ai fait des recherches à ce sujet pendant un certain temps et cela a peut-être quelque chose à voir avec les permaliens et ils sont réglés sur post name.

Code en home.php:

<?php 
if ( have_posts() ): while ( have_posts() ): the_post(); ?>
    <div class="thepost">
      <div class="primecircle">
        <div class="circledate">
          <div class="blogmonth"><?php the_time('M'); ?></div>
          <div class="blogdate"><?php the_time('j'); ?></div>
          <div class="blogyear"><?php the_time('Y'); ?></div>
        </div>
      </div>
    <div class="blogcontent">
      <h1 class="blogtitle"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>
      <p><?php the_excerpt(); ?></p>
      <div class="learnmore"><a href="<?php the_permalink(); ?>">learn more</a></div>
    </div>
    </div>      
<?php endwhile; ?>

<div class="pagelinks">
  <ul class="tags" class="list-inline">
    <li><?php echo previous_posts_link('Back'); ?></li>
    <li><?php echo next_posts_link('Next', 5); ?></li>
  </ul>
</div>  

<?php else: ?>
    <h1 class="blogtitle">No Current blog posts at this time.</h1>      
<?php endif; ?> 

Des suggestions ou des indications sur la façon dont je peux désactiver correctement la fonction next_posts_link() lorsqu'elle atteint la dernière page des publications?

Modifié: erreur corrigée sur la fonction previous_posts_link(); lorsque je lui transmettais une variable label et max_page alors qu’elle ne prend que label. Après avoir supprimé max_page des deux fonctions, il a cessé de passer à index.php.

1

Votre problème peut être lié à 5. Le previous_posts_link n'accepte qu'un paramètre valide, et c'est $label, vous en passez deux.

Deuxièmement, le next_posts_link accepte le deuxième paramètre $max_pages. Ici, vous passez une valeur de 5, qui remplace $wp_query->max_num_pages. Donc, vous dites à Wordpress qu'il y a 5 pages, quelle que soit la quantité réelle de pages.

SOLUTION:

Supprimez simplement 5 de vos liens, cela devrait résoudre votre problème

1
Pieter Goosen