web-dev-qa-db-fra.com

La pagination donne l'erreur 404

Il semble que ce bogue de WP n'ait jamais été résolu par l'équipe de [WP] _.

J'ai personnalisé post-type, ma structure d'URL est /% category% /% postname%/et si je clique sur la 2ème page, j'obtiendrai l'erreur 404.

J'ai essayé tout ce que j'ai trouvé sur Internet, plugins, codes .. J'ai même changé mon URL de base de pagination pour NE PAS être la page, donc wp ne pense pas que je recherche une page nommée de type post-type. Mais toujours rien.

Et oui, j’ai fait le processus de réenregistrement des permaliens, j’ai essayé de restaurer la surdité puis de revenir en arrière, toujours rien ... Téléchargé wp_navi toujours le même ..

Y a-t-il quelque chose que je puisse faire pour résoudre ce problème?

2
Tommixoft

Avez-vous essayé cela?

J'avais eu le même problème avant. J'ai suivi ces étapes et cela fonctionne pour moi.

J'utilise ce code dans mon functions.php

// New method of WordPress Query since 3.4.1
if ( ! function_exists( 'ucc_add_cpts_to_pre_get_posts' ) ) {
    function ucc_add_cpts_to_pre_get_posts( $query ) {
    if ( $query->is_main_query() && ! is_post_type_archive() && ! is_archive() && ! is_search() && ! is_singular() && ! is_404() ) {
        $my_post_type = get_query_var( 'post_type' );
        if ( empty( $my_post_type ) ) {
            $query->set('post_type', 'your_post_type_name'); // replace your_post_type_name with yours
        }
    }
}
}add_action( 'pre_get_posts', 'ucc_add_cpts_to_pre_get_posts' );

Ensuite, je l’utilise dans mon single- {post-type} .php

<?php $paged = 1;
  if ( get_query_var('paged') ) $paged = get_query_var('paged');
  if ( get_query_var('page') ) $paged = get_query_var('page'); 
  if (have_posts()): 
?>


<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
  $loop = new WP_Query( array(
    'post_type' => 'your_post_type_name', // replace your_post_type_name with yours
    'posts_per_page' => PER_PAGE_DEFAULT, // Displaying number posts per page equals to Reading Settings in WP admin
    'paged'=>$paged
  )); 
?>

<?php query_posts( '&post_type=your_post_type_name&paged=' . $paged );  ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>

  <!-- The content is here -->

<?php endwhile; else: ?>
  <p>Not Found</p>
<?php endif; wp_reset_query(); ?>

<div class="navigation">
 <?php if(function_exists('wp_page_numbers')) { wp_page_numbers(); } ?> 
</div>

Dans mon cas, j'utilise le plugin wp page numbers.

Espérons que cela puisse résoudre votre problème.

2
Kharis Blank